Javascript 单击按钮时,希望显示文本,但找不到元素-量角器

Javascript 单击按钮时,希望显示文本,但找不到元素-量角器,javascript,html,protractor,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()).toBeTru

我想单击导出(下载按钮),然后确认我下载, 我希望绿色文字出现在页面上(仅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-flex md-body-l flex”)堆栈未找到元素: NoSuchElementError:使用定位器By.cssSelector(“.md-flex-md-body-l flex”)未找到任何元素 在进程中。_tick回调(内部/process/next_tick.js:103:7) 错误


您使用的
css选择器
不正确。请尝试使用下面的定位器

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

您使用的
css选择器
不正确。请尝试使用下面的定位器

element(by.css(".md-flex.md-body-l.flex"))
我会尝试使用“Elementor”Chrome插件来获取量角器的精确定位器。在不确定某个元素定位器的情况下,检查一行自动化代码而不必一直执行所有操作也是很有用的。 您可以在此处查看下载和说明:

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

我会尝试使用“Elementor”Chrome插件来获取量角器的精确定位器。在不确定某个元素定位器的情况下,检查一行自动化代码而不必一直执行所有操作也是很有用的。 您可以在此处查看下载和说明:

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

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

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

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


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

失败:使用locator:By.cssSelector(“.md flex.md-body-l.flex”)add
browser.wait()找不到元素
单击导出按钮直到显示警告警报后。我失败了:fn不是browserwaitFailed的函数:使用定位器By.cssSelector(“.md flex.md-body-l.flex”)找不到元素添加
browser.wait()
单击导出按钮后,直到显示警告警报。i Get Failed:fn不是browserwait的函数i Get Failed:fn不是browserwait的函数i Get Failed:fn不是browserwait的函数