1

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

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

请提出任何解决方案

4

2 回答 2

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 在超时之前重复尝试定位元素的最大秒数...

于 2013-10-09T19:32:56.827 回答
0

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

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

于 2013-10-11T11:59:23.867 回答