如何使用selenium web驱动程序从不同的部分div识别相同的web元素?

时间:2016-05-23 16:35:10

标签: selenium-webdriver

考虑我在不同的部分div中有相同的链接。

链接1位置将是动态的,有时链接将显示在div1和div 2中。有时链接1将仅显示在div 1内,或者它将仅显示在div2内。

<section 1 ...
<div 1>
<a class....href="#">Link 1</a>
</div 1 >
</section 1>
<section 2 ...
<div 2>
<a class....href="#">Link 1</a>
</div 2 >
</section 2>

我需要实现以下场景,我不认为Xpath会解决这个问题,因为这个div将是动态的。

情景1:

当两个div都存在时,我需要点击div2中的Link 1

情景2:

假设如果在div 1中不存在Link1,则<a class....href="#">Link 1</a>将不可见。那么,如果链路1中的任何一个丢失,我应该如何确认只有一个链接?

1 个答案:

答案 0 :(得分:2)

您可以编写一个通用的xpath

List<WebElement> link= driver.findElements(By.xpath("//div/a[text()='Link 1']"));

然后您可以编写代码来驱动逻辑:

情景1:

if(link.size()==2){
            link.get(1).click();
        }

场景2:您的方案2不明确。你是说链接将出现在DOM中但不可见? 你可以写这样的东西来检查可见性。

link.get(0).isDisplayed()