我想点击导出(下载按钮),然后确认我下载, 我希望绿色书写出现在页面上(仅3-4秒)。
此外,它下载文件,但我认为这种方式比搜索文件更容易,更好。
这是我点击并期待
的代码productDashboardPageObject.element(by.css('[aria-label="file_download"]')).click();
expect(element(by.css('.md-flex md-body-l flex')).isDisplayed()).toBeTruthy();
这是在下载之前,导出按钮靠近过滤器:
但我收到了错误:
消息: 失败:找不到使用定位器的元素: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) 错误
答案 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"旁边的"样式"窗格。 导航到需要查找定位器的页面,然后只需选择元素。您将看到定位器显示在"量角器"窗格。