如下图所示,有许多span标签,每个标签都有自己的a-tag,其唯一ID为“chooseitem”。我需要在span标签中使用名称选择特定的标签。
需要使用图片中上述HTML代码段中的文字Mayo Chicken点击a-tag按钮。
我尝试过以下Selenium脚本
WebElement select = driver.findElement(By.xpath("//*[contains(text(),'Mayo Chicken (Single)')]"));
WebElement add = select.findElement(By.id("chooseitem"));
它对我不起作用。
driver.findElement(By.id("chooseitem"));
上面的代码默认选择页面中的第一项,因为它的id也是'chooseitem',但是需要定义要选择的内容。
有人可以帮帮我吗?
答案 0 :(得分:1)
我们需要获得小鸡的共同父(祖先)元素和可点击的'a'标签,然后我们可以导航到标签'a'。理想情况下,xpath下面应该可以工作。
"//span[contains(text(),'Mayo chicken')]/ancestor::div[4]//a"
注意:这里我使用了div [4],因为第四个父母是'Mayo chicken'的共同祖先,标记'a'。
有关不同xpath轴的更多详细信息,请参阅此 - > https://www.w3schools.com/xml/xpath_axes.asp
希望这会对你有所帮助。感谢。
答案 1 :(得分:0)
您可以使用xpath位置,按F12键显示开发者工具点击"选择元素按钮",点击页面上您感兴趣的元素,如图所示,您将看到一个或突出显示更多行,右键单击该行 - >复制 - >复制xpath。您将拥有如下所示的内容:
//*[@id="comment-76500216"]/td[2]/div/span[1]
xpath位置为:
//td[2]/div/span[1]
当您有多个共享名称或ID等的元素时,可以使用它。
你将拥有:
WebElement select = driver.findElement(By.xpath("//td[2]/div/span[1]"));
PS:我使用谷歌浏览器