2017-01-23 32 views
1

我在一個Java項目上工作,在那裏我必須用Selenium做一些UAT。 我沒有關於Webdevelopment的知識,所以我不確定我的問題是否可以解決。 問題是: 有一個網頁,您可以在其中打勾一些單選按鈕或複選框。他們都有一個字段旁邊有一個文本。所以我想用Java和Selenium找到那些按鈕和複選框來勾選它們。使用Firefox,我打開控制檯以獲取一些按鈕的代碼:如何通過標籤獲取WebElement按鈕

<tr> 
<td class="af_tableSelectMany_cell-icon-format OraTableBorder1111" style=""> 
<input id="equipmentChecker6" type="checkbox" onchange="setDirty();deselectOptions('6');selectOption('6');" value="true" name="equipmentChecker6"> 
</td> 
<td class="af_column_cell-text OraTableBorder1111" style="text-align: left; ">Some Text1</td> 
</tr> 


<tr> 
<td class="af_column_cell-text OraTableBorder1111"> </td> 
<td class="af_column_cell-text OraTableBorder1111" style="text-align: left;"> 
<span class="af_selectOneRadio"> 
<span id="optionRadio5" class="af_selectOneRadio_content"> 
<input id="optionRadio5:_0" type="radio" onchange="setDirty();selectEquipment('5');" value="0" name="optionRadio5"> 
<label for="optionRadio5:_0">Some Text2</label> 
</span> 
</span> 
</td> 
</tr> 

這是來自Page的一些代碼。現在我想用id = equipmentChecker6來獲取Webelement,但我只是有文本「Some Text1」。

在第二個示例中,我想通過標籤對象的文本「Some Text2」來獲取id = optionRadio5:_0。 有沒有一種方法可以將按鈕元素作爲Java中的Webelements與Selenium一起使用?

THX的幫助

回答

1

您可以使用類似

// For the first case 
driver.findElement(By.xpath("//td[text()='Some Text1']/preceding-sibling::td/input[@type='checkbox']")).click(); 

// For the second case 
driver.findElement(By.xpath("//label[text()='Some Text2']/preceding-sibling::input[@type='radio']")).click(); 
+0

謝謝你的工作!有沒有一個文件,我可以找到這種方法的解釋,所以我可以通過我自己解決未來的類似問題? – mrprinze

+0

其實它很常見'XPath'語法。 'before-sibling'和'fol​​lowing-sibling'允許你處理'DOM'中同一級別的前一個/下一個元素。我建議你把這個https://www.simple-talk.com/wp-content/uploads/imported/1269-Locators_table_1_0_2.pdf放到你的瀏覽器書籤中,如果你要用'selenium'工作很多的話和定位器:有很多關於'XPath'和'CSS'選擇器 – Andersson

+0

謝謝! ' \t \t \t <輸入的ID = 「j_id_1r_1_72_3_1::0」 類型= 「無線電」 檢查= 「」 值= 「0」 關於這個例子什麼的onclick = 「使用setDirty();」標題= 「」 名稱= 「j_id_1r_1_72_3_1:選擇」> \t \t <標籤類= 「p_OraHiddenLabel」 爲= 「j_id_1r_1_72_3_1:0」> \t \t \t \t <跨度類=」 「>某些文本 \t \t \t \t <跨度類=」 decimalNumberAlign「>某些數 \t ' – mrprinze

相關問題