Javascript 单击弹出窗口中的链接
我有问题,点击链接从弹出窗口。 单击按钮后,弹出窗口显示约3秒:Javascript 单击弹出窗口中的链接,javascript,automation,webdriver,protractor,automated-tests,Javascript,Automation,Webdriver,Protractor,Automated Tests,我有问题,点击链接从弹出窗口。 单击按钮后,弹出窗口显示约3秒: <toast-container class="ng-tns-c12-31 ng-star-inserted"> <div class="toast-top-center" id="toast-container" style="position: fixed;"> <!----><div class="toast toast-info ng-star-inserted ng-anim
<toast-container class="ng-tns-c12-31 ng-star-inserted">
<div class="toast-top-center" id="toast-container" style="position: fixed;">
<!----><div class="toast toast-info ng-star-inserted ng-animating">
<!----><div class="toast-close-button ng-tns-c12-31 ng-star-inserted" style="">×
</div>
<!---->
<div class="ng-tns-c12-31">
<!----><span class="toast-message ng-star-inserted" style="">Section will removed. <a class="toast-link">Cancel</a></span>
<!---->
</div>
</div>
</div>
</toast-container>
及
但是链接没有被点击。我不知道该怎么做
断言在此弹出窗口上正常工作
var toastMessageBox = $('#toast-container');
this.assertClearSelectionToastMessage = function () {
expect(toastMessageBox.$('span').getText()).toBe(toastText)
return this;
}
弹出窗口尚未加载。链接不可见,因此无法单击。您必须等待弹出窗口出现 元素有可能是可点击的,而点击元素什么也不做 见: @Jonny Leeds指出: 要注意的一个主要问题是按钮是否启用。你仍然可以点击它们,没有任何东西会掉下来,元素就在那里,但它还没有准备好被点击,所以什么都不做
也许你可以尝试使用builder强制点击链接 大致如下:
browser.wait(progrator.ExpectedConditions.visibilityOf(元素)(by.css('a.toast\u link')),5000);
driver.actions()。单击(元素(by.css('a.toast_link'))。执行()代码>
问题是它只在桌面浏览器上工作-它还没有在Appium中实现-所以如果你也在移动浏览器上测试的话,你可能需要引入一些逻辑来做不同的事情。不太可能,因为在它之前(单击取消),我断言了这个弹出窗口中的消息,它工作正常。当I console.log此弹出窗口时,控制台中会显示此弹出窗口中的消息-“Section will removed.Cancel”我尝试使用预期的条件、可见性、elementToBeClicable,但它不按逻辑工作,这意味着“element(by.partialLinkText('Cancel'))找不到元素。换个方式怎么样,比如身份证?你能找到链接吗?如果两者都不起作用,则表明单击不起作用。你能点击链接吗?我可以手动点击,没有问题。但在控制台中,在测试过程中,我得到“消息:失败:过时元素引用:元素未附加到页面文档(会话信息:chrome=67.0.3396.62)(驱动程序信息:chromedriver=2.39.562737(dba483cee6a5f15e2e2d73df16968ab10b38a2bf),平台=Linux 4.13.0-43-generic x86_64)”您需要再次找到元素,使其不过时。但我正在尝试再次找到它“this.clickCancel=function(){var asa=$('a.toast_link');asa.click();return this;}”等待“a.toast_link”超时,但等待“#toast container”正常,没有错误。单击按操作返回错误失败:使用locator:by(css选择器,a.toast_链接)找不到元素。您可以尝试对元素使用完整选择器吗?i、 e.#toast container>div>div:nth child(2)>span>a
如果这不起作用,也许可以强制单击xpath<代码>//*[@id=“toast container”]///a
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;
}