//I have used waits like
Thread.sleep(2000);
或
driver.manage().timeouts().pageLoad(100,TimeUnit.seconds);
或
driver.manage().timeouts().explicitlywait(10,TimeUnit.seconds);
或
WebDriverWait wait = new WebDriverWait(driver,30);
wait.until(ExpectedConditions.visibilityof(element));
我关心的是在Grid中运行大量脚本 由于等待问题,一些人通过了一些失败 所以我想要一个可以处理这种场景的用户定义方法,即一种等待页面的所有元素加载的方法,这样可以有效地用于显示“无法找到元素”或“无法点击一个元素”等错误的方法元素其他元素将收到点击“。 /
答案 0 :(得分:0)
你永远不应该使用计时器等待你的页面加载,因为你永远不知道渲染速度有多快,那么在这种情况下我建议你2个方法:
使用selenium的waitFor方法,其中驱动程序将等待直到存在元素,您可以设置默认等待的最大时间,默认为6秒。对于这种方法,您需要知道哪个元素意味着页面已满载
waitFor(ExpectedConditions.presenceOfElementLocated(By.id("yourExpectedIdElement")));
如果您需要检查所有JS代码是否已加载,您还可以在document.ready()JS中添加一行,其中向主体添加隐藏元素,然后是您将等待的属性你的考试。
$document.ready(){
//Add a hidden element to the body
}
waitFor(ExpectedConditions.presenceOfElementLocated(By.id("createdElement")));