如何在单击span元素时停止Selenium

时间:2019-04-24 12:06:17

标签: selenium

以下是要素

<a href="#" class="finalLevel showMenuElement" data-index="8,2,5" title="Workitem Summary"  data-wintitle="Workitem Summary">Workitem Summary<span id="fav" class="addtoFav"></span></a>

我想单击链接文本“ Workitem摘要”,但Selenium似乎单击了id="fav"元素。

如何告诉Selenium单击Linktext "Workitem Summary"而不是span元素?

这两个元素彼此相邻。

我什至尝试了 XPath ,结果相同

driver.findElement(By.linkText("Workitem Summary")).click();
driver.findElement(By.xpath("//*[@id=\"2\"]/li[5]/a")).click();

2 个答案:

答案 0 :(得分:0)

标记之间的文本为“ 工作项摘要”,因此,如果您使用

driver.findElement(By.linkText("Workitem Summary")).click(); 

将单击超链接。

跨度始终位于锚标记之间。

您可以拥有类似的东西:

driver.findElement(By.xpath("//a[@title='Workitem Summary']")).click()  

希望这会有所帮助。

答案 1 :(得分:0)

您可以尝试单击偏移量(单击从左上角开始的x-y坐标距离,以像素为单位):

WebElement myElement = driver.findElement(By.xpath("//a[@title='Workitem Summary']");
Actions build = new Actions(driver);
build.moveToElement(myElement, X-offset, Y-offset).click().build().perform();

输入X偏移和Y偏移的相应值(以像素为单位)。

编辑:

OP可以使用以下代码解决问题:

WebElement add1 = driver.findElement(By.linkText("Workitem Summary")); 
int width = add1.getSize().getWidth(); 
Actions act = new Actions(driver); 
act.moveToElement(add1).moveByOffset((width / 2) - 2, 0).click().perform(); 
add1.click();