我正在使用 Java 和 Firefox 和 Firebug 我无法在第二页上找到该元素。例如,如果我登录 gmail,那么我无法找到并单击已发送的项目或下一页上的任何其他按钮。
我尝试使用 xpath(绝对路径和相对路径),但每次我收到一个错误,即找不到元素。使用代码我可以成功登录,但是一旦页面加载,我就会收到错误“找不到元素”。
请提出任何解决方案
我正在使用 Java 和 Firefox 和 Firebug 我无法在第二页上找到该元素。例如,如果我登录 gmail,那么我无法找到并单击已发送的项目或下一页上的任何其他按钮。
我尝试使用 xpath(绝对路径和相对路径),但每次我收到一个错误,即找不到元素。使用代码我可以成功登录,但是一旦页面加载,我就会收到错误“找不到元素”。
请提出任何解决方案
除非您告诉 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 在超时之前重复尝试定位元素的最大秒数...
我同意 CODEBLACK 的回答。您也可以进行隐式等待,这将使硒隐式等待给定的时间段。尝试以下操作:- driver.manage().timeouts().implicitlyWait(20,TimeUnit.SECONDS);
您可以根据自己的方便指定时间。祝你好运。. .!