我想自动执行一些重复的任务 - 比如不止一次提交某个表单。我对页面加载问题感到磕磕绊绊,所以我想让你问你是怎么做的。说,我想在表单中提交十个不同的条目。所以我可以这样做:
for (int i =0; i<10; i++){
String name = getNextName();
String surname = getNextSurname();
Webelement newUserButton = driver.findElement(By.id("newUser")));
newUserButton.click();
WebElement name = driver.findElement(By.id("name")));
name.sendKeys(name);
WebElement surname = driver.findElement(By.id("surname")));
surname.sendKeys(surname);
WebElement submit = driver.findElement(By.id("submit")));
submit.click();
}
但我发现如果我的测试环境比较慢,上面的循环就会崩溃。我试图在代码中添加一些Thread.sleep()
,但是如果我想提交,比如200个条目,那么编写脚本可能会很长。
是否有任何功能只能等待表单准备就绪?
答案 0 :(得分:2)
听起来您需要添加明确的等待 - 请参阅Webdriver页面Advanced Usage - Explicit and Implicit Waits
使用显式等待,您可以告诉webdriver等待表单处于就绪状态 - 通常某个字段可见或重置(取决于单击提交时表单发生的情况)。
答案 1 :(得分:1)
如果您使用的是Selenium 2.0,您可以通过在代码中创建WebDrivewWait对象来使WebDriver等到某些操作发生。您可以查看此链接以获取更多信息 - http://selenium.googlecode.com/svn/trunk/docs/api/java/index.html