【问题标题】:Searching an element in Chrome Browser after page load in Selenium在 Selenium 中加载页面后在 Chrome 浏览器中搜索元素
【发布时间】:2018-03-28 06:48:18
【问题描述】:

我正在尝试在特定页面上加载页面后在 Chrome 中搜索元素。但是,当我检查页面时,我注意到 HTML 标记在页面加载后不会动态加载。因此,驱动程序在页面加载后搜索元素,可用的元素仍然是页面加载之前存在的元素,搜索失败。我已经尝试了所有的定位器技术。还使用Thread.sleep 和wait 命令等待页面加载,但无济于事。让我知道是否有其他方法可以解决此类问题。

【问题讨论】:

  • 请您的代码试用和相关的HTML。
  • 寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example。
  • 这可能是应用程序的缺陷吗?

标签: java google-chrome selenium


【解决方案1】:

即使您的问题可能不完整,但(据我所知)在 java 中等待页面加载的最佳方法是:

new WebDriverWait(firefoxDriver, pageLoadTimeout).until(
      webDriver -> ((JavascriptExecutor) webDriver).executeScript("return document.readyState").equals("complete"));

【讨论】:

    【解决方案2】:

    在大多数情况下,我尝试通过使用 id、xpath 或名称来检查元素是否显示和启用。 您可以将其添加到您的代码中,并应用断点。它可能在那里,但也可能被隐藏。如果没有错误的堆栈跟踪,很难知道是什么导致了您的问题。希望这会有所帮助。

    WebElement element = driver.findElement(By.xpath);
    if (element.isDisplayed() && element.isEnabled()) {
        element.click();
    }
    

    【讨论】:

      猜你喜欢
      • 2015-10-31
      • 2017-01-14
      • 1970-01-01
      • 1970-01-01
      • 2014-04-22
      • 2017-03-04
      • 2018-06-09
      • 1970-01-01
      • 2022-01-18
      相关资源
      最近更新 更多