我正在使用Eclipse和Java在Selenium中构建自动化测试包。我发现的事实是,有时候某些行动可能需要比以前更长的时间。所以,虽然我知道我需要实现某种等待命令,但我想知道最有效的使用方法是什么?基本上,我想要的是网页在控制台中返回错误之前等待X秒。
另外,根据人们过去的经验,实现这一目标的最佳方式是什么?我想我创建了一些'wait commands'类,它将有一系列可以根据场景使用的方法。这是正确的做法吗?
答案 0 :(得分:1)
selenium已经成熟了内置的等待机制。
它具有隐式等待,这意味着当您导航到新页面时,它会等到整个页面加载,然后才对页面执行任何操作。
在使用Ajax的地方,上面可能没有帮助,因此我们必须使用显式等待来确保ajax请求完成。例如:
(new WebDriverWait(driver, 10))
.until(ExpectedConditions.presenceOfElementLocated(By.id("myDynamicElement")));
有关详细信息,请查看以下链接 http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#explicit-and-implicit-waits