selenium - 如果两个链接中包含相同的文本,如何选择绝对链接?

标签 selenium xpath

我有两个链接


订婚戒指
戒指


上面的链接是下拉菜单下的复选框

如何使用text()方法使用Selenium xpath选择Rings

以下是我尝试过的方法,但它选择了“订婚戒指”

//li//a[contains(text(),'Rings')]


但它正在选择“订婚戒指”,因为它出现在菜单中的“铃声”之前

我的代码:

//Select Sub-Menu item from collection dropdown     
WebElement selectSub = driver.findElement(By.xpath("//div[@class='popover fade right in']//div[2]//li//a[contains(text(),'Rings')]"));


enter image description here

最佳答案

之所以选择Engagement Rings,是因为您使用的是contains()方法

它将找到包含匹配文本的元素,因此您的第一个复选框为“环”文本

只需将xpath更改为:

//li//a[text()='Rings']


要么

//li//a[normalize-space()='Rings']   

关于selenium - 如果两个链接中包含相同的文本,如何选择绝对链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44243269/

相关文章:

javascript - 如何扩展列表并选择动态值。

java - 使用 XPath 检索 html 标签的内容

xml - 不同的元素和分组

r - 为什么 "//*"是我使用 XML 包在 R 中解析此 XML 时唯一有效的 xPath 查询?

javascript - Python Selenium 网络驱动程序 : trying to call a javascript function

testing - Selenium 错误 : The Selenium Server is not active on host localhost at port 4444

java - 无法单击从工厂方法传递的元素

java - Java Selenium 中多个类中 Webdriver 的相同实例

python : Scraping Websites Not Returning any Html

xml - Xpath 获取当前节点的值