2014-04-29 83 views
1

我正在嘗試爲以下HTML塊使用WebDriver編寫一個自動化測試的CSS選擇器,以便我可以選擇一個單選按鈕。Css選擇器或Xpath方法?

<span data-id="c1cf48c1-fbe3-44ea-ac5c-dfe588f0ed18" class="folder"> 
<input id="Folders" name="Folders" type="radio" value="c1cf48c1-fbe3-44ea-ac5c-dfe588f0ed18">    Contract Folder 
</span> 

我已經嘗試爲有返回太多的元素,XPath表達式//*[contains(.,"Contract")]寫無濟於事,當我嘗試//*[contains(.,"Contract Folder")]什麼都沒有返回。因此,我試圖讓我更喜歡使用的CSS。值屬性是動態的,所以我無法將其用作參考。

有人可以幫助建議什麼是在這種情況下最好的辦法?

非常感謝。

回答

2

由於元素ID不是唯一的OP的使用案例(見@ alecxe的答覆意見),你可以使用XPath的解決方案,基於span文本內容:

.//span[@class="folder"][normalize-space(.)="Contract Folder"]/input[@type="radio"] 
2

爲什麼不通過id屬性得到input

//input[@id="Folders"] 
+1

或CSS,'input#Folders' – epoch

+1

@epoch好點,謝謝 – alecxe

+1

我試過這個,發現總共有四個元素用這個xpath表達式返回。它需要是一個更加獨特的標識符。 –

0

也許這是容易的想法,但不能給你所有的輸入同一類。

<input class="radioButton" ... /> 

input.radioButton { ... /* style */ ... } 
+0

當我爲應用程序編寫自動化測試時,我無法更改代碼。我已經用這個信息更新了這個問題。對不起,如果不明確。 –