我从弹出窗口点击链接时遇到问题。 点击按钮后,弹出窗口显示约3秒钟:
element(by.partialLinkText('Cancel'))
我试图点击"取消"由
var cancelLink = $('#toast-container a');
browser.executeScript("arguments[0].click();", cancelLink)
和
var toastMessageBox = $('#toast-container');
this.assertClearSelectionToastMessage = function () {
expect(toastMessageBox.$('span').getText()).toBe(toastText)
return this;
}
但链接没有被点击。我不知道怎么做 断言在此弹出窗口中正常运行
{{1}}
答案 0 :(得分:0)
弹出窗口尚未加载。该链接不可见,因此无法点击。你必须等待弹出窗口出现。
元素可以被点击,点击元素可以不做任何事情。
请参阅:https://stackoverflow.com/a/21387564/1997776
@Jonny Leeds指出:
需要注意的一件事是按钮是否已启用。你仍然可以点击它们,没有任何东西会掉下来,元素就在那里,但它还没有准备好被点击,所以只是没有做任何事情。
答案 1 :(得分:0)
也许您可以尝试使用Webdriver Actions构建器强制点击链接?
以下内容:
browser.wait(protractor.ExpectedConditions.visibilityOf(element(by.css('a.toast_link'))), 5000);
driver.actions().click(element(by.css('a.toast_link'))).perform();
问题在于它只适用于桌面浏览器 - 它还没有在Appium中实现 - 所以如果你在移动浏览器上进行测试,你可能不得不引入一些逻辑来做到这一点。