以下是要素
<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();
答案 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();