Selenium WebDriver:流畅的等待按预期方式工作,但隐式等待不起作用

Selenium WebDriver:流畅的等待按预期方式工作,但隐式等待不起作用,第1张

Selenium WebDriver:流畅的等待按预期方式工作,但隐式等待不起作用

请记住,以下几种情况有所不同

  • DOM中根本不存在的元素。
  • 元素存在于DOM中但不可见。
  • DOM中存在但未启用的元素。(即可点击)

我的猜测是,如果某些页面使用javascript显示,则元素已经存在于浏览器DOM中,但不可见。隐式等待仅等待元素出现在DOM中,因此它会立即返回,但是当您尝试与该元素进行交互时,您会收到NoSuchElementException。您可以通过编写一个辅助方法来检验此假设,该方法显式等待元素可见或可单击。

一些示例(在Java中):

public WebElement getWhenVisible(By locator, int timeout) {    WebElement element = null;    WebDriverWait wait = new WebDriverWait(driver, timeout);    element = wait.until(ExpectedConditions.visibilityOfElementLocated(locator));    return element;}public void clickWhenReady(By locator, int timeout) {    WebDriverWait wait = new WebDriverWait(driver, timeout);    WebElement element = wait.until(ExpectedConditions.elementToBeClickable(locator));    element.click();}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5086493.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存