当点击按钮时,期望显示文本,但它无法找到元素 - 量角器

时间:2016-11-28 11:32:37

标签: javascript html protractor

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

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

这是我点击并期待

的代码
productDashboardPageObject.element(by.css('[aria-label="file_download"]')).click();            
expect(element(by.css('.md-flex md-body-l flex')).isDisplayed()).toBeTruthy();

这是在下载之前,导出按钮靠近过滤器:

this is before downloading, export button is near filters:

当我点击该导出按钮后,1秒后,绿色警告出现: when i click that export button, after 1 second, that green warning comes:

这是写作警告的html :(仅显示几秒钟) this is html of that writing warning:

但我收到了错误:

  

消息:       失败:找不到使用定位器的元素:By.cssSelector(" .md-flex md-body-l flex")堆栈:       NoSuchElementError:使用定位器找不到任何元素:By.cssSelector(" .md-flex md-body-l flex")           at process._tickCallback(internal / process / next_tick.js:103:7)       错误

3 个答案:

答案 0 :(得分:3)

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

element(by.css(".md-flex.md-body-l.flex"))

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

我会尝试使用" Elementor" Chrome插件可以获得量角器的确切定位器。检查单行自动化代码而不必一直执行所有内容也很有用,以防一个人不确定某个元素定位器。 您可以在此处查看下载和说明:https://github.com/andresdominguez/elementor

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