我正在使用Java和Firefox以及Firebug 我无法在第二页上找到该元素。例如,如果我登录gmail,那么我无法找到并点击下一页上发送的项目或任何其他按钮。
我尝试使用xpath(绝对和相对)但每次我收到一个错误,找不到该元素。 使用我能够成功登录的代码但是一旦页面加载,我就会收到错误“找不到元素”。
请建议任何解决方案
答案 0 :(得分: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();
' 100'在WebDriverWait(driver,100)中,您希望WebDriver在超时之前重复尝试定位元素的最大秒数...
答案 1 :(得分:0)
我同意CODEBLACK的回答。你也可以进行Imlicit等待,这会使selenium在给定的时间段内隐含等待。 请尝试以下方法: 。driver.manage()超时()implicitlyWait(20,TimeUnit.SECONDS);
您可以根据自己的方便指定时间。 最好的运气。 。 !