wac*_*nia 3 selenium ruby-on-rails cucumber capybara
所以这段代码工作得很好,直到我最近更新了我的selenium webdriver:
When /^I search for (.*)$/ do |term|
term = " " if term == "blank"
step "I fill in search with #{term}"
within(".navbar-search") do
page.find(:css, "li:first").click
end
end
Run Code Online (Sandbox Code Playgroud)
我更新了,现在我收到以下错误:
An invalid or illegal string was specified (Selenium::WebDriver::Error::UnknownError)
./features/step_definitions/search_steps.rb:5:in `block (2 levels) in <top (required)>'
./features/step_definitions/search_steps.rb:4:in `/^I search for (.*)$/'
features/search_friend.feature:13:in `When I search for <term>'
Run Code Online (Sandbox Code Playgroud)
这是黄瓜功能:
@javascript
Scenario Outline: The search bar
Given I login
And I have a contact named ABC
And I have a contact named DEF
And I have a contact named GHI
When I search for <term>
Then I should see the message <message>
Examples:
| term | message |
| ... some examples ... | |
Run Code Online (Sandbox Code Playgroud)
And*_*lov 14
我猜你不仅更新了Webdriver而且更新了Capybara.
Capybara 2.1现在使用驱动程序的CSS选择器实现.对于Selenium Webdriver,它意味着使用浏览器的实现.:first伪选择器不是标准的,浏览器不支持,因此您的CSS选择器无效.
之前它有用,因为Capybara使用Nokogiri将CSS选择器转换为XPath.Nokogiri支持:first伪选择器.
因此,您应该将无效的CSS选择器更改为有效的类似:
page.first(:css, 'li').clickpage.find(:css, 'li', match: :first).click(之前的变体与此变体之间的区别在于此变体等待元素出现在页面上,但第一个不等待.请参阅Capybara README的此部分以获取更多信息match)page.find(:css, "li:first-child").clickpage.find('li:first-child').click| 归档时间: |
|
| 查看次数: |
6472 次 |
| 最近记录: |