2015-03-25 29 views
0

我正在爲視圖文件編寫測試。我有一個帶有兩個複選框的頁面,允許用戶選擇兩個不同列表中的所有項目。但是,複選框是部分相同的部分。我設法檢查第一個使用:水豚:找到與第一個相同的第二個複選框

first(:checkbox, "Select all").click 

但我無法檢查第二個。我試圖用lastsecond替換first,但無濟於事。 我想我可能需要使用find選擇器,但我也在努力。任何幫助非常感謝。

看來 感謝

UPDATE,這其實另一個問題。我認爲任何影響其他複選框的複選框在Capybara「檢查」時無法按預期工作。因此,當前答案的工作原理是,他們確實檢查複選框,但不會出現預期的行爲,即鏈接到它們的複選框不會被「檢查」。但我可能是錯的。

+0

你可以給每個複選框的ID。這會讓事情變得更容易。 – 2015-03-26 16:37:24

+0

我正在查看我沒有創建的文件,但我認爲我無法編輯。他們沒有身份證,而且他們有同一班。 我想我將不得不添加ID來解決這個問題。儘管感謝您的幫助。 – HatStephensWork 2015-03-27 08:20:15

回答

0

哎呦。原來這是一個JS問題,而不是水豚macthers!感謝您的幫助!

0

試試這個

# find the second checkbox 
find('input[type="checkbox"]:nth-child(2)').click 
+0

道歉,但這似乎並沒有工作: '失敗/錯誤:find('input [type =「checkbox」]:nnth-child(1)')。點擊' 'Capybara :: ElementNotFound: '無法找到CSS「輸入[type = \」複選框\「]:nth-​​child(1)」' – HatStephensWork 2015-03-26 13:53:16

+0

你能顯示頁面的html源代碼嗎? – 2015-03-26 16:34:38

0

您可以使用找到所有

all('input[type="checkbox"]', :text => 'Select all')[1].click 
+0

道歉,但這似乎沒有工作: '失敗/錯誤:所有('輸入[類型=「複選框」]',:文本=>'全選')[1] .click' 'NoMethodError :' '未定義的方法\'點擊'爲零:NilClass'' – HatStephensWork 2015-03-26 13:50:29

+0

@HatStephensWork - 我和Nafaa完全猜測如何識別HTML中的複選框。這可能是完全不同的。 您需要檢查並查看您的複選框是否包含某種您實際可以點擊的ID或div。 – Phil 2015-03-26 17:11:46

相關問題