Selenium 如何选择正文中的最后一个链接?

问题描述 投票:0回答:3

我有一个如下所示的html页面

<body>
    
    <div>
        <a class="btn btn-info" href="a.php">A</a>
        <a class="btn btn-info" href="b.php">B</a>
        <a class="btn btn-info" href="c.php">C</a>
        <a class="btn btn-info" href="d.php">D</a>
    </div>
        
    <a class="btn btn-info" href="f.php">F</a>

</body>

我需要选择最后一个链接

F
。我已经尝试过如下

link = driver.find_element_by_xpath("//a[last()]")

正在选择

D

我也尝试过以下方式

email = driver.find_element_by_xpath("/body//a[last()]")

此时无法定位元素。我怎样才能以简单的方式获得这里的最后一个链接?

python selenium xpath
3个回答
2
投票

获取last元素。尝试以下

xpath

link = driver.find_element_by_xpath("(//a)[last()]")

0
投票

使用

driver.findElements()
方法并将返回值放入数组中。

最后一个链接将是数组的最后一个元素。

我建议你(出于各种原因):

  1. yourArray = driver.findElements(By.tag("a"))

  2. 对于每个元素,使用

    element.getAttribute("href") != null
    检查 href 属性是否不为空,如果不是则更新 myIndex var

  3. “yourArray”的索引“myIndex”处的元素将是您要搜索的元素。


0
投票

添加@KunduK 接受的答案(因为我还不能发表评论) - 如果你想单击最后一个元素,使用新的 Selenium 版本它将是

driver.find_element("xpath","(//a)[last()]").click()

© www.soinside.com 2019 - 2024. All rights reserved.