如何在Selenium Web驱动程序java中单击文本链接

时间:2015-11-06 04:02:48

标签: selenium selenium-webdriver

我的页面中有很多链接。其中包含文字"添加policyhoder" ,一个带有文字"添加"只有和另一个"添加PP"。我需要点击文字链接。我使用下面的代码点击文字链接为"添加"只是点击第一个链接"添加"在其文本中,即""添加PP"在屏幕上提供。请帮助

Driver.findElement(By.linkText("Add"));

我的要求是点击具有完全文字匹配的链接。例如"添加"此处

<td width="100%" colspan="7">
<table width="100%" cellspacing="0" cellpadding="1" valign="bottom">
<input id="hidPoClaim" type="hidden" onblur="ResetScript(this);" onfocus="HighlightScript(this);" value=" PolicySummary " callfunction="" size="" name="/Root/ACORD/InsuranceSvcRs/com.c_HomePolicyInquiryRs/co.cc_AvailableFunctions[com._FunctionName='PoSummary' and com.csc_FunctionName[@Action='ShowPolicyClaims']]">
<tbody>
<tr>
<td width="25%" valign="bottom" colspan="1">
<strong>
<font class="flabel">Policy Claims History:</font>
</strong>
</td>
<td width="20%" valign="bottom" colspan="1">
<font class="flabel">  </font>
<a class="fLabel" onclick="INFCaptureControlID(this); DoLink('POLICYLOSS','','ADD' );return false; " onblur="ResetScript(this);return true;" onfocus="HighlightScript(this);" delimiter="|" screenaction="ADD" href="" screen="Y" objecttype="POLICYLOSS" type="Link" context="Screen">**Add**</a>
</td>
<td width="20%" valign="bottom" colspan="1">
<td align="Center" width="15%" valign="bottom" colspan="1">
<td width="20%" colspan="1">
</tr>
</tbody>
</table

由于 开发

3 个答案:

答案 0 :(得分:2)

如果有2个元素,单词&#34; Add&#34;,那么尝试这样的事情:

List<WebElement> list = driver.findElements(By.linkText("Add"));
list.get(1).click();

要通过搜索确切的文本来查找元素,那么使用xpath会更有帮助。

// For "Add" link, according to the HTML you've added to the question
driver.findElement(By.xpath("//a[text()='**Add**']")).click();

答案 1 :(得分:0)

我假设因为当您点击第一个链接时,它会在同一个标​​签页中打开该链接页面,并且在页面更改时无法找到第二个链接元素,因此您必须在新标签页中打开该链接页面。

我认为你的代码是:

String Newtab = Keys.chord(Keys.CONTROL,Keys.RETURN); 
driver.findElement(By.linkText("Add policyhoder")).sendKeys(Newtab);

driver.findElement(By.linkText("Add")).click(); 

现在上面的代码对您有用。

答案 2 :(得分:0)

您可以尝试使用

driver.findElement(By.xpath("//a[text()='Add']"));

这将与您的确切文本匹配