【问题标题】:How to get unique xpath for all the hyperlink dynamically in webpage如何在网页中动态获取所有超链接的唯一 xpath
【发布时间】:2018-06-26 09:49:11
【问题描述】:

我有一些网页,其中包含一些单词的超链接,也可以重复。我需要验证每个单词的超链接,例如headache 这个词在该页面中出现了 3 次。单击每个头痛后,都会打开相同的页面。

是否有任何方法可以返回所有单词 headache 的 XPath,因为为了自动化,我需要单击每个 headache 并验证 URL。

我可以手动编写 XPath,但是如果同一页面上有很多带有超链接的 headache 单词怎么办?

【问题讨论】:

  • 请您的代码试用和相关HTML
  • 您希望此工具/方法自动执行哪些您无法手动手动执行的操作创建定位器以查找所有包含“头痛”的链接?

标签: java selenium xpath automation


【解决方案1】:

在 xpath 中,您必须声明元素的类型,例如: driver.findElements(By.xpath(".//link[text()='headache']")).forEach(WebElement::click)

此外,如果您只需要检查链接是否正确,您可以使用 Rest Assured 库并通过 http 发送获取请求。

【讨论】:

    【解决方案2】:

    您可以试试这个 xpath = //a[text()='headache'] 或使用 linkText driver.findElements(By.linkText("headache")) 查找

    List<Webelement> ele = driver.findElements(By.linkText("headache"))
    
        for(Webelement link: ele){
    
        link.click();
    
         // other operation 
    
        }
    

    【讨论】:

    • 嗨 Ankur,我试过这个 xpath --> driver.findElements(By.xpath("//a[contains(text(),'headache')]")) 这也是给出包含“头痛”的 id。但问题是有 3 个头痛词,并且对于每个头痛,相同的 xpath id 使用然后我们如何执行单击操作,因为它需要唯一的 xpth(位置)来执行单击操作,而我使用的 xpath 它提供了一个共同的 xpath所有单词都令人头疼。
    • 你可以查看我的ans,我已经修改了。
    猜你喜欢
    • 1970-01-01
    • 2018-01-03
    • 1970-01-01
    • 2013-02-23
    • 2020-02-29
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    • 2020-11-10
    相关资源
    最近更新 更多