我想要点击导出(下载按钮),然后确认我下载,我希望绿色文字出现在页面上(仅3-4秒)。
此外,它下载文件,但我认为这种方式比搜索文件更容易和更好。
这是我点击并期待的代码
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)
发布于 2016-11-28 11:49:06
您使用的cssSelector是不正确的。尝试使用下面的定位器,
element(by.css(".md-flex.md-body-l.flex"))发布于 2016-11-28 12:33:02
使用by.css('.md-flex.md-body-l.flex')应该有效。你可能有一些同步问题。调试时可以尝试添加睡眠,以确保这是您想要的定位器。但我会避免使用等待和那样的睡眠。使用实际上在单击元素之前等待元素的隐式等待。
我还将避免通过使用来自同一元素(.class1.class2.class3)的多个类来获取定位器。如果将某些类重命名/删除,则会非常脆弱。
发布于 2016-11-28 12:11:44
我会尝试使用"Elementor“Chrome插件来获得精确的量角器位置。在不确定某个元素定位器的情况下,检查一行自动化代码,而不必一直执行所有这些代码,也是非常有用的。您可以在这里查看下载和说明:https://github.com/andresdominguez/elementor
在启动之前,请确保首先启动独立的selenium。通过控制台启动元素,链接到网站-> Chrome将打开。复制选项卡(否则插件会崩溃),在第二个选项卡中打开Chrome DevTools元素面板,您将在“样式”窗格旁边找到"Protractor“。导航到需要查找定位器的页面,只需选择元素。您将看到定位器显示在“量角器”窗格中。
https://stackoverflow.com/questions/40843297
复制相似问题