ruby-on-rails – 如何从下拉列表中选择第一个元素.回报率/水豚/
所以这段代码工作得很好,直到我最近更新了我的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 我更新了,现在我收到以下错误: 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>' 这是黄瓜功能: @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 ... | | 解决方法
我猜你不仅更新了Webdriver而且更新了Capybara.
Capybara 2.1 now uses driver’s implementation of CSS selectors.对于Selenium Webdriver,它意味着使用浏览器的实现. :第一个伪选择器不是标准的,浏览器不支持,因此您的CSS选择器无效. 之前它有用,因为Capybara使用Nokogiri将CSS选择器转换为XPath. Nokogiri支持:第一个伪选择器. 因此,您应该将无效的CSS选择器更改为有效的类似: > page.first(:css,’li’).点击 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |