java - 如何使用 selenium 2 定位一个没有唯一标识符(如 Name、Id)的元素

标签 java html css selenium-webdriver

启动自动预召(托运人) 启动自动预召(收货人) 记录人工预召(托运人) 记录人工预召(收货人)

最佳答案

根据您在评论中给出的代码,找到了查找您列出的元素的解决方案。

解决方案 1:

使用元素List获取

 List<WebElement> allOptions = driver.findElements(By.className("ui-corner-all"));

现在通过索引获取元素。

用于启动自动预调用(托运人)allOptions.get(0);

用于启动自动预调用(收货人)allOptions.get(1);

对于日志手动预调用(托运人)allOptions.get(2);

对于日志手动预调用(收货人)allOptions.get(3);

解决方案 2:

按照给定的方式使用 xpath:

用于启动自动预调用(托运人)(//a[@class='ui-corner-all'])[1]

用于启动自动预召(收货人)(//a[@class='ui-corner-all'])[2]

对于日志手动预调用(托运人)(//a[@class='ui-corner-all'])[3]

对于日志手动预调用(收货人)(//a[@class='ui-corner-all'])[4]

driver.findElement(By.xpath("<xpath>"));

解决方案 3:

在 xpath 中使用 text() 和 contains() 函数。

用于启动自动预召(托运人)

//a[contains(text(),'Initiate') and contains(text(),'Shipper')]

用于启动自动预召(收货人)

//a[contains(text(),'Initiate') and contains(text(),'Consignee')]

对于日志手动预调用(托运人)

//a[contains(text(),'Log') and contains(text(),'Shipper')]

对于日志手动预调用(收货人)

//a[contains(text(),'Log') and contains(text(),'Consignee')]

driver.findElement(By.xpath("<xpath>"));

希望您找到了解决方案。

关于java - 如何使用 selenium 2 定位一个没有唯一标识符(如 Name、Id)的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35564407/

相关文章:

java - 空套接字输入流

java - Tomcat 中的 Servlet 并发/同步?

java - 显式等待返回奇怪的 findElement 值

java - 自动登录 Spring Security

javascript - 单击外部隐藏下拉 div

html - 如何阻止 Sticky Footer 覆盖内容...?

css - Flexbox 不包装 flex 元素

php - preg_replace 在 IMG 标签中提出斜杠

css - Javascript 不适用于 Bootstrap 3

html - 行内 block 元素放置