【问题标题】:Selenium Web Driver: not able to find the element on the 2nd page.Selenium Web 驱动程序:无法在第二页上找到元素。
【发布时间】:2013-10-11 19:59:23
【问题描述】:

我正在使用 Java、Firefox 和 Firebug 我无法在第二页上找到该元素。例如,如果我登录 gmail,则无法找到并单击已发送的项目或下一页上的任何其他按钮。

我尝试使用 xpath(绝对路径和相对路径),但每次我收到一个错误,即找不到元素。 使用代码我可以成功登录,但是一旦页面加载,我就会收到错误“找不到元素”。

请提出任何解决方案

【问题讨论】:

  • Gmail 链接是高度动态的。但是,您能否告诉我们您用于第二页元素的 xpath 或 css 路径?
  • 我不会尝试在 Google 的页面上进行自动化测试,它们非常复杂,不断变化,因此定位器非常糟糕。您只是想查看用户的电子邮件吗?有许多库可以在不需要浏览器的情况下做到这一点。

标签: java xpath selenium-webdriver


【解决方案1】:

除非您告诉 WebDriver 等到第二页上的元素加载完毕,否则 WebDriver 只会在它能够运行时尝试单击该元素。这很糟糕,因为您的元素可能尚未加载,而 WebDriver 已经尝试单击它... TIMEOUT 混乱随之而来...

尝试以下操作...使用 WebDriverWait 类让 WebDriver 等待页面上的元素被加载,然后再尝试单击它...:

WebDriverWait wait = new WebDriverWait(driver, 100);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("your xpath")));
element.click();

WebDriverWait(driver, 100) 中的 '100' 是您希望 WebDriver 在超时之前重复尝试定位元素的最大秒数...

【讨论】:

    【解决方案2】:

    我同意 CODEBLACK 的回答。您也可以进行隐式等待,这将使硒隐式等待给定的时间段。 尝试以下: - driver.manage().timeouts().implicitlyWait(20,TimeUnit.SECONDS);

    您可以根据自己的方便指定时间。 祝你好运。 . .!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-16
      • 2015-09-19
      • 2020-12-29
      • 2019-09-20
      • 2020-09-30
      • 2018-03-05
      • 2023-04-04
      • 2018-08-15
      相关资源
      最近更新 更多