如何使用selenium 2找到一个没有Name,Id等唯一标识符的元素

时间:2016-02-22 21:37:31

标签: java html css selenium-webdriver

启动Auto Precall(发货人)  启动Auto Precall(收货人)  记录手册Precall(托运人)  记录手册Precall(收货人)

3 个答案:

答案 0 :(得分:1)

据我了解,您希望通过其文本内容来淘汰web元素。 由于css不允许你进行基于文本的搜索,xpath是你唯一的选择。试试这个:

color, inches

答案 1 :(得分:1)

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

解决方案1:

使用元素列表并获取它。

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

现在按索引获取元素。

对于Initiate Auto Precall(发货人)allOptions.get(0);

对于Initiate Auto Precall(收货人)allOptions.get(1);

对于日志手册Precall(发货人)allOptions.get(2);

对于日志手册Precall(收货人)allOptions.get(3);

解决方案2:

在给定的下方使用xpath:

对于Initiate Auto Precall(发货人)(//a[@class='ui-corner-all'])[1]

对于Initiate Auto Precall(收货人)(//a[@class='ui-corner-all'])[2]

对于日志手册Precall(发货人)(//a[@class='ui-corner-all'])[3]

对于日志手册Precall(收货人)(//a[@class='ui-corner-all'])[4]

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

解决方案3:

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

对于Initiate Auto Precall(发货人)

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

启动Auto Precall(收货人)

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

对于日志手册Precall(发货人)

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

对于日志手册Precall(收货人)

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

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

希望你找到解决方案。

答案 2 :(得分:0)

driver.findElement(By.cssSelector("<CSSSelectorHere>")).click();