Selenium:迭代某些类型的元素,具有不同的xpath?

时间:2017-06-27 04:11:40

标签: java selenium xpath selenium-webdriver

立即处理Java / Selenium应用程序,遇到一些问题

我在网页上有一系列可点击的元素。我想生成一个web元素列表,迭代它们并执行特定的操作,比如打开一个新的选项卡等等

每个XPATH看起来像:

//*[@id="msg-1276616953"]/div[8]/div/a[1]

其中msg =#是该元素的特定标识符

每个可点击元素的特定消息-________更改。即:下一个元素可能是不同的等等

如果页面上有20个元素,我想生成所有20个元素的列表,但我不确定如何在Selenium中这样做

我将不胜感激任何帮助

这是元素本身的来源:

<a data-ng-if="currentSuperState != 'ON_HOLD' 
&amp;&amp; currentSuperState != 'EXPIRED'" target="_self" href="/someLinkId=1276617990" 
class="some-link-begin ng-binding ng-scope" data-btn-loc="my-link">
        Edit-Link
    </a>

1 个答案:

答案 0 :(得分:1)

你可以尝试类似的东西,

查找页面上提供的所有链接

List<WebElement> elem = driver.findElements(By.TagName("a"));

现在你可以迭代列表并根据你的要求做你想要的动作,例如你可以通过使用if (elem.getAttribute("attribute name")).contains("yourDesiredText") {//Then do some Action}获取特定元素来获得属性(无论你想要匹配什么)并得到你想要的结果

您也可以尝试使用其他元素。