首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击按钮时,期望文本显示,但它找不到元素量角器。

单击按钮时,期望文本显示,但它找不到元素量角器。
EN

Stack Overflow用户
提问于 2016-11-28 11:32:37
回答 3查看 110关注 0票数 0

我想要点击导出(下载按钮),然后确认我下载,我希望绿色文字出现在页面上(仅3-4秒)。

此外,它下载文件,但我认为这种方式比搜索文件更容易和更好。

这是我点击并期待的代码

代码语言:javascript
复制
productDashboardPageObject.element(by.css('[aria-label="file_download"]')).click();            
expect(element(by.css('.md-flex md-body-l flex')).isDisplayed()).toBeTruthy();

这是下载前,导出按钮附近的过滤器:

当我单击那个导出按钮时,1秒后,绿色警告就出现了:

这是写警告的html:(只出现几秒钟)

但我错了:

消息:未找到使用定位器的元素:By.cssSelector(“.md- found body-l flex")堆栈: NoSuchElementError:没有使用定位器找到的元素:By.cssSelector(”.md- found flex") ( process._tickCallback (内部/进程/next_tick.js:103:7)

EN

回答 3

Stack Overflow用户

发布于 2016-11-28 11:49:06

您使用的cssSelector是不正确的。尝试使用下面的定位器,

代码语言:javascript
复制
element(by.css(".md-flex.md-body-l.flex"))
票数 3
EN

Stack Overflow用户

发布于 2016-11-28 12:33:02

使用by.css('.md-flex.md-body-l.flex')应该有效。你可能有一些同步问题。调试时可以尝试添加睡眠,以确保这是您想要的定位器。但我会避免使用等待和那样的睡眠。使用实际上在单击元素之前等待元素的隐式等待。

我还将避免通过使用来自同一元素(.class1.class2.class3)的多个类来获取定位器。如果将某些类重命名/删除,则会非常脆弱。

票数 1
EN

Stack Overflow用户

发布于 2016-11-28 12:11:44

我会尝试使用"Elementor“Chrome插件来获得精确的量角器位置。在不确定某个元素定位器的情况下,检查一行自动化代码,而不必一直执行所有这些代码,也是非常有用的。您可以在这里查看下载和说明:https://github.com/andresdominguez/elementor

在启动之前,请确保首先启动独立的selenium。通过控制台启动元素,链接到网站-> Chrome将打开。复制选项卡(否则插件会崩溃),在第二个选项卡中打开Chrome DevTools元素面板,您将在“样式”窗格旁边找到"Protractor“。导航到需要查找定位器的页面,只需选择元素。您将看到定位器显示在“量角器”窗格中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40843297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档