2017-01-26 244 views
1

我是硒自動化中的newby。如何根據硒webdriver中的其他元素選擇元素

我有一個場景,我必須點擊某個標題的按鈕。但是按鈕元素對於所有行都是相同的。 這是圖像: enter image description here

這是各項─

<tr class="odd gradeX"> 
<td class="hide"></td> 
<td>My sample Test</td> 
<td> Priyank pareek </td> 
<td style="width:50px;text-align:center;">01/11/2017</td> 
<td style="width:50px;text-align:center;"> Approved </td> 
<td style="width:50px;text-align:center;"> 
<td style="width:100px;"> 
<a class="btn btnReject red btn-sm btn-outline sbold uppercase" href="javascript:;" onclick="updateTest(this)" data-status="0" data-gui="6438C99F-E166-49DA-8B89-DD0E2EF33A62" title="Reject"> 
</td> 
</tr> 

HTML我如何可以點擊拒絕按鈕?請幫我

+0

看這個http://stackoverflow.com/questions/23021830/xpath-to-select-following-sibling – Sudeepthi

回答

0

嘗試找到使用以下xpath -

//td[text()='My sample Test']/following-sibling::td/a[@title='Reject'] 

說明: -

查找其中具有文本「我的樣品測試」 following-sibling用於導航具有拒絕按鈕同級

+0

謝謝,它的工作 – Nik

+0

我會包裝這個功能,並通過測試標題點擊拒絕按鈕。這將使代碼更容易重用。 – JeffC

2

您可以使用下面XPath

WebElement element = driver.findElement(By.xpath("//a[@title='Reject']")); 

CSS選擇

WebElement element = driver.findElement(By.cssSelector("a[title='Reject']")); 

如果這些選擇多個元素仍然匹配,嘗試:

WebElement element = driver.findElement(By.xpath("//tr[td[text()='My sample Test']]//a[@title='Reject']")); 
+0

感謝答覆。但我擁有相同標題的所有按鈕 – Nik

+0

檢查已更新的答案。它能解決你的問題嗎? – Andersson

0

可以使用類名btnReject搜索td標籤。在Python中,我通常使用driver.getElementByClassName("btnReject").click()。你可以把它們改成Java來使用。

+0

在硒綁定的Python中,沒有這樣的WebDriver方法名爲:'getElementByClassName'。也許你的意思是'find_element_by_class_name'? –