2016-03-11 68 views
0

我有一個現成的代碼,我正在嘗試使用硒爲它編寫測試。該代碼包含兩個或兩個以上的複選框,其格式爲不同的id,如:無法選擇使用硒的複選框

1. <input type="checkbox" id="8933059checkitem0"> 

2. <input type="checkbox" id="8933059checkitem1"> 

.... 

我使用以下XPath表達式來獲取最上面的複選框:

"/html//div[@class='xyz']//input[@type='checkbox']" 

即使放置 '[1]' 之後上述的xpath表達式是給沒有結果。我正在尋找一個xpath表達式,我只能使用它來獲取第一個複選框。

在此先感謝

+0

您的XPath表達式看起來不錯。你確定第一個div [@ class ='xyz']'是正確的嗎?如果您使用的是Chrome瀏覽器,則可以通過打開devtool來驗證您的表達式,然後轉到控制檯,輸入$ x(「your-expression」); – Buaban

+0

該複選框位於'iframe'內部嗎? – Guy

+0

@Shubham Gupta您正在使用哪種語言。並檢查是否有幀,然後先獲取幀並打開幀。 –

回答

0

嘗試選擇的第一個項目之前,封閉表達式:

(/html//div[@class='xyz']//input[@type='checkbox'])[1] 

(//input[@type='checkbox'])[position()=1 and ancestor::div[@class='xyz']] 

如果僅使用[1],在大多數情況下,它抓住所有的第一孩子,而不是單獨的第一個孩子(如預期)。

實際上,位置謂詞經常被誤解。他們不選擇與父母相關的項目,他們在正在處理的序列中選擇項目。