单击弹出窗口中的链接

时间:2018-05-30 07:31:02

标签: javascript automation webdriver protractor automated-tests

我从弹出窗口点击链接时遇到问题。 点击按钮后,弹出窗口显示约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}}

2 个答案:

答案 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中实现 - 所以如果你在移动浏览器上进行测试,你可能不得不引入一些逻辑来做到这一点。