2017-01-26 215 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'? –