Thi*_*ago 2 autocomplete ruby-on-rails cucumber
我需要用黄瓜测试自动完成字段.我怎样才能做到这一点?我试过了
Scenario: Using Autocomplete
Given I am on the home page
And there are the following users:
|id |name |
|1 |foo |
When I fill in "name" with "f"
Then I should see "foo"
Run Code Online (Sandbox Code Playgroud)
但后来它失败了,因为预计以下元素的内容包括"foo".有任何想法吗?
小智 5
您需要为测试使用支持JS的驱动程序.如果您使用webrat o capybara,您可以尝试使用硒.
Then I should see "foo"
Run Code Online (Sandbox Code Playgroud)
这在使用默认Web步骤时不起作用,因为DOM在查找文本时尚未更新.有两种选择:
选项1:等待
And I wait for 1 second
Then I should see "foo"
Run Code Online (Sandbox Code Playgroud)
你需要实现这个步骤来调用sleep(n)
选项2:自定义定位
Capybara的locate方法将查看目标是否存在于DOM中.如果不是,它将等待几秒钟并再次尝试并抛出错误,如果它仍然不存在.
Then I should see the following autocomplete options:
| foo |
Run Code Online (Sandbox Code Playgroud)
这就是我对步骤的实现方式:
Then /^I should see the following autocomplete options:$/ do |table|
table.raw.each do |row|
locate(:xpath, "//a[text()='#{row[0]}']")
end
end
Run Code Online (Sandbox Code Playgroud)
如果您需要有关此主题的更多详细信息,我已经撰写了一个博客文章,其中包含示例和一些代码段,还涉及单击自动填充选项:
http://www.aentos.com/blog/testing-ajax-autocomplete-fields-cucumber-and-capybara
| 归档时间: |
|
| 查看次数: |
1102 次 |
| 最近记录: |