获取一个包含大量文本字段、下拉列表等的标准网页。在 webdriver 中填写值然后验证值是否输入正确的最有效方法是什么。
问问题
19034 次
2 回答
8
如果您在输入字段中发生了一些 javascript 验证或其他魔法,您只需测试输入的值是否正确。您不想测试 webdriver/selenium 是否正常工作。
有多种方法,具体取决于您是要使用 webdriver 还是 selenium。这是我正在使用的东西的杂烩。
Assert.assertEquals("input field must be empty", "", selenium.getValue("name=model.query"));
driver.findElement(By.name("model.query")).sendKeys("Testinput");
//here you have to wait for javascript to finish. E.g wait for a css Class or id to appear
Assert.assertEquals("Testinput", selenium.getValue("name=model.query"));
仅使用 webdriver:
WebElement inputElement = driver.findElement(By.id("input_field_1"));
inputElement.clear();
inputElement.sendKeys("12");
//here you have to wait for javascript to finish. E.g wait for a css Class or id to appear
Assert.assertEquals("12", inputElement.getAttribute("value"));
于 2012-08-09T10:30:27.130 回答
2
希望用户能够以某种方式看到填写表单的结果。所以你可以按照这些 BDD 式的思路来思考:
When I create a new movie
Then I should see my movie page
也就是说,您的“新电影”步骤将执行字段输入和提交。而您的“然后”会断言电影会显示您输入的数据。
element = driver.find_element(:id, "movie_title")
element.send_keys 'The Good, the Bad, the Ugly'
# etc.
driver.find_element(:id, "submit").click
我现在只是涉足这个,但这是我迄今为止想出的。它肯定看起来比 Capybara 之类的更冗长:
fill_in 'movie_title', :with => 'The Good, the Bad, the Ugly'
希望这可以帮助。
于 2013-07-09T16:43:06.267 回答