为了账号安全,请及时绑定邮箱和手机立即绑定

显式等待给定操作(错误) - Selenium Webdriver

显式等待给定操作(错误) - Selenium Webdriver

慕桂英546537 2023-07-28 09:47:43
早上好家伙!我在使用 Selenium Webdriver (JAVA) 进行自动化时遇到问题。首先,系统(界面)使用AJAX,好吗?!我必须多次点击同一个按钮。该按钮保留相同的元素。为了避免错误(ElementClickInterceptedException 和/或 StaleElementReferenceException),我最初添加了一个带有异常“elementToBeClickable”的 WebdriverWait。然而,即使这样等待,错误仍然存在。然后我决定添加 FluentWait。我添加了例外、时间等,但也保留了错误。我发现唯一有效的替代方案是著名的“Thread.sleep”(400ms)。但我不想将 thread.sleep 添加到我的代码中,因为我发现这是一个不好的做法。有人有什么想法吗?下面是一些代码片段。命令:driver.findElement(By.xpath("//tr[1]/td[8]/button"))。点击 ();等待已使用:1:wait.until (ExpectedConditions.elementToBeClickable (By.xpath ("// tr / td [8] / button")));2:wait.until (ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath ("// tr / td [8] / button")));3:                .withTimeout (10, TimeUnit.SECONDS)                 .pollingEvery (1, TimeUnit.SECONDS)                 .ignoring (NoSuchElementException.class)                 .ignoring (StaleElementReferenceException.class)                 .ignoring (ElementClickInterceptedException.class); waitFluent.until (ExpectedConditions.elementToBeClickable (By.xpath ("// tr / td [8] / button")));有谁能够帮助我?预先非常感谢您!
查看完整描述

1 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

您能否上传该应用程序的 html 源代码以及您的问题?还要检查该按钮元素是否位于任何 iframe 标记内,如果是,则必须实现 driver.switchTo().frame(iFrame)。



查看完整回答
反对 回复 2023-07-28
  • 1 回答
  • 0 关注
  • 78 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信