【问题标题】:Selenium Automation : Identifying unique set of webelements using selenium in JAVASelenium Automation:在 JAVA 中使用 selenium 识别唯一的 webelements 集
【发布时间】:2018-11-14 05:58:15
【问题描述】:

我有一个这样的 HTML:

"<div **id="xx-abc-list-1"**>
<button ng-reflect-class-base="icon component" **id="xx-abc-list-button-2"**><span class="mat-button-wrapper">
</div>

<div **id="xx-abc-list-2"**>
<button ng-reflect-class-base="icon component" **id="xx-abc-list-button-2"**><span class="mat-button-wrapper">
</div>"

现在,我想获取所有以 id = xx-abc-list- 结尾的元素的列表,所以我使用了以下代码。

@FindBy(xpath = "//*[contains(@id,'xx-abc-list-')]");
List<WebElement>;

但是考虑到其他元素(xx-abc-list-button-),这也给了我 4 个计数。

我应该在上面的代码中修改什么以获得我需要的 2 个值?

【问题讨论】:

    标签: java selenium-webdriver


    【解决方案1】:
    @FindBy(xpath = "//*[contains(@id,'xx-abc-list-')]");
    

    上面 XPath 中的 * 表示任何元素(它是通配符)。在您的情况下,您只需要DIVs,因此您可以将其更改为

    @FindBy(xpath = "//div[contains(@id,'xx-abc-list-')]");
    

    它应该可以得到你想要的。

    在更复杂的场景中,您需要两个而不是四个并且都是DIVs,您仍然可以使用“not contains()”来排除包含“-button-”的 ID。

    @FindBy(xpath = "//*[contains(@id,'xx-abc-list-')][not(contains(@id,'-button-'))]")
    

    How to use not contains() in xpath?

    【讨论】:

    • 太棒了。如果这个或任何其他答案有用,请点赞。找到问题的答案后,请将其标记为已接受,以免问题没有得到解答。
    猜你喜欢
    • 1970-01-01
    • 2014-06-18
    • 2016-12-03
    • 2017-05-03
    • 2016-03-19
    • 2017-04-13
    • 1970-01-01
    • 1970-01-01
    • 2015-10-10
    相关资源
    最近更新 更多