2016-03-01 130 views
0

下面的jQuery代碼什麼是有效的水豚發現聲明?

$(".batch_fund_fields:first input[name*='code']") 

是有效的,當我使用JavaScript控制檯。但是,如果我做

find(".batch_fund_fields:first input[name*='code']") 

內水豚,我得到的錯誤

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"做谷歌搜索沒有多大幫助。

什麼是有效的find聲明在水豚?

(我還沒有添加頁面的HTML,因爲它是說的論據是無效的,而不是它找不到任何元素)

+0

是因爲':first'是jQuery的,但水豚唯一使用Javascript? – PJSCopeland

回答

2

沒有有效的CSS:第一選擇 - 有:first-child和:first-of-type - 允許的查詢必須是有效的CSS - 不允許使用jQuery擴展。

如果你真的想JQueries的行爲:第一個擴展,你可以做

first(".batch_fund_fields", minimum: 1).find("input[name*='code']")