2017-05-27 77 views
0

我試圖檢查不同複選框可用,但我沒能得到id爲same.I嘗試的XPath:無法檢查/取消選中複選框

@ browser.checkbox(:XPath的=>「/ /SPAN[@id='incentive_4000215652']").set 和 @ browser.checkbox.span(:ID => 'incentive_4000215652')設置

頁的鏈接是 https://secure.bestprice.rankingsandreviews.com/nc/configurator/301937

點擊。在除外部顏色外編輯並點擊激勵標籤。

任何幫助將不勝感激。謝謝!

+0

'set'方法不適用於跨度(),你不能叫跨度()設置,設置可用於複選框。 – RAJ

+0

untag'ruby-on-rails',這與你的問題無關。 – RAJ

+0

未標記。我想檢查一個複選框,這是一個跨度。有什麼建議麼? @RAJ –

回答

0

使用此

browser.element(text: "2017 GM Conquest Cash").parent.preceding_sibling.span.click 

或使用該

browser.element(xpath: "//*[normalize-space()='2017 GM Conquest Cash']/../preceding-sibling::td/span").click 

如果更改裏面的文字,然後點擊它相應的複選框。

第二個比第一個快一點,因爲WATIR不會去形成xpath,因爲xpath是直接可用的。

的完整代碼如下這裏

browser.goto('https://secure.bestprice.rankingsandreviews.com/nc/configurator/307715') 

browser.element(:id => 's2id_select_style').click 

browser.element(xpath: ".//*[@id='select2-drop']/div/input").send_keys('Convertible LT 1LT', :tab) 

browser.element(id: 'edit_color').click 

browser.span(text: 'Incentives').click 

browser.element(text: "2017 GM Conquest Cash").parent.preceding_sibling.span.click 

或者

browser.element(xpath: "//*[normalize-space()='2017 GM Conquest Cash']/../preceding-sibling::td/span").click 
+0

再次感謝@RAJ。您是否使用任何工具查找xpath? –

+0

以上xpath的種類不能由任何工具生成,您需要學會編寫。但是有一個mozilla firepath可以幫助你獲取特定xpath的xpath。我建議你使用firefox而不是chrome!而且,只要您使用WATIR,則不必編寫xpath,如果使用selenium Ruby綁定,則必須使用WATIR。看看我的第一個解決方案,我沒有寫任何xpath,WATIR寫在後端。 – RAJ

相關問題