Java dev之間並且新到Xpath時。谷歌搜索和RTFM編輯相當多,但卡住了。公司使用Java Wicket框架以Java編寫大型網絡應用程序。將Selenium與Cucumber和Junit結合使用進行測試。因此需要編寫大量的Xpath表達式。 卡住以下。Xpath。無法選擇標籤文本 - 當<input>之類的其他元素位於<label>標籤
一個窗體和兩個切換()和它後面的文本的屏幕。相關片段。
<label>
<input id="idf1" name="removeConditionViaTreeStep:resultsRadioGroup" value="radio3" checked="checked" type="radio">
Safe to delete
</label>
<label>
<input id="idf2" name="removeConditionViaTreeStep:resultsRadioGroup" value="radio4" type="radio">
Unsafe to delete
</label>
注:使用Wicket框架意味着屬性ID和值是/每個應用程序運行,因此不能使用它們的時間可以是不同的。不能更改html。
A計劃 我想選擇一個特定的觸發(和模擬點擊/選擇它)通過使用標籤文本作爲uniq的選擇,但事實是,標籤之間有..給我的問題。在乾淨的標籤情況下,我可以毫無問題地選擇某個標籤。 在這種情況下,無法獲取// label [contains(text(),'Unsafe to delete')]等工作。
放棄了,去了B計劃。
使用firepath插件Firebug的測試,並具有以下想出了://輸入[@名稱=「removeConditionViaTreeStep:resultsRadioGroup」] 這導致firepath在兩場比賽中。我希望使用類似[2]的選擇第二個切換,但無法弄清楚。
C計劃 - 求助於Java和Xpath。
List elements = findElementsByXpath(「// input [@ name ='removeConditionViaTreeStep:resultsRadioGroup']」); elements.get(1)//選擇第二個切換。
有這種感覺「//標籤[包含(text(),'不安全刪除')]」不起作用,因爲一切都流式傳輸,硒的Webdriver沒有任何東西存儲在內存中。因此,元件切斷流或類似的東西......
也許有人可以給一些提示和指針或者甚至計劃A和B液
編輯矯正右括號作爲錯字比爾Hileman提到。
嘗試'「//標籤[normalize-space()='不安全刪除']」' – Andersson
你試過類似'元素的東西。getAtrribute(「textContent」);' – kushal