1

我想自动化一些重复的任务——比如多次提交一些表单。我在页面加载问题上磕磕绊绊,所以我想让你问你是怎么做的。比如说,我想向我们的表单提交十个不同的条目。所以我可以做这样的事情:

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 个条目,编写脚本可能真的很长。

是否有任何功能只能等待表格准备就绪的时间?

4

2 回答 2

2

听起来您需要添加显式等待 - 请参阅 Webdriver 页面Advanced Usage - Explicit and Implicit Waits

通过显式等待,您可以告诉 webdriver 等到表单处于就绪状态 - 通常某个字段可见或重置(取决于单击提交时表单发生的情况)。

于 2012-04-10T16:49:10.137 回答
1

如果您使用的是 Selenium 2.0,您可以通过在代码中创建 WebDrivewWait 对象使 WebDriver 等到某些操作发生。您可以查看此链接以获取更多信息 - http://selenium.googlecode.com/svn/trunk/docs/api/java/index.html

于 2012-04-12T07:01:34.320 回答