加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何从下拉列表中选择第一个元素.回报率/水豚/

发布时间:2020-12-17 01:47:12 所属栏目:百科 来源:网络整理
导读:所以这段代码工作得很好,直到我最近更新了我的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 endend 我
所以这段代码工作得很好,直到我最近更新了我的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’).点击
> page.find(:css,’li’,match :: first).click(之前的变体与此变体之间的区别在于此变体等待元素出现在页面上,但第一个变量不等待. this section of Capybara README获取更多相关信息)> page.find(:css,“li:first-child”).点击> page.find(‘li:first-child’).点击

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读