以下JQuery代码
$(".batch_fund_fields:first input[name*='code']")
当我使用JavaScript控制台时,有效。但是如果我做的话
find(".batch_fund_fields:first input[name*='code']")
在Capybara内,我收到了错误
Selenium::WebDriver::Error::InvalidSelectorError: invalid selector: An invalid or illegal selector was specified
(Session info: chrome=48.0.2564.116)
(Driver info: chromedriver=2.20.353124 (035346203162d32c80f1dce587c8154a1efa0c3b),platform=Mac OS X 10.10.5 x86_64)
from /Users/agrimm/.rbenv/versions/1.9.3-p550/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.35.1/lib/selenium/webdriver/remote/response.rb:51:in `assert_ok'
甚至
find(".batch_fund_fields:first")
给出了类似的错误。
http://www.rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Finders#find-instance_method没有提供太多信息,使用capybara rails "find"
进行谷歌搜索也无济于事。
Capybara的find
声明有效吗?
(我没有为页面添加HTML,因为它说的是参数无效,而不是它找不到任何元素)
答案 0 :(得分:2)
没有有效的CSS:第一个选择器 - 有:first-child和:first-of-type - 允许的查询必须是有效的CSS - 不允许jQuery扩展。
如果你真的想要JQueries的行为:你可以做第一个扩展
first(".batch_fund_fields", minimum: 1).find("input[name*='code']")