【问题标题】:Python Selenium Webdriver - Locating Set of Elements Within TablePython Selenium Webdriver - 在表中定位元素集
【发布时间】:2014-03-30 11:57:58
【问题描述】:

我正在尝试使用 python selenium 提取网页中的链接列表。页面上的所有链接在源代码中的格式如下:

<a href = "link"></a>

使用下面的行给我页面上标签名称为a的所有元素:

driver.find_elements_by_tag_name("a")

问题是我只需要一组特定的链接,所有这些链接都在一个表中。上面的代码给了我页面上的所有链接,甚至是表格​​之外的链接。页面源码的大纲如下:

<html>
    ...
    ...
    <frame name = "frame">
        <a href = "unwantedLink">
        <form name = "form">
            <table name = "table">
               <a href = "link1">
               <a href = "link2">
               <a href = "link3">
            </table>
        </form>
    </frame>
    ...
</html>

我需要link1link2link3,但不需要unwantedLink。所需链接和不需要的链接都在同一个帧中,因此无法切换帧。有没有办法在表格中而不是在父框架中查找标签名称a

谢谢

【问题讨论】:

    标签: python html selenium


    【解决方案1】:

    这应该给你想要的:

    driver.find_elements_by_css_selector("table[name='table'] a")
    

    table[name='table'] 位仅选择属性name 设置为"table" 的表。然后选择器获取所有a 元素,它们是表的后代。因此,a 元素是 table 元素的子元素还是出现在 td 元素中并不重要。

    请注意,如果您有多个表将name 属性设置为值"table",您将获得比实际查找更多的元素。 (不保证 name 属性的唯一性。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-30
      • 2021-04-11
      • 2021-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-15
      • 1970-01-01
      相关资源
      最近更新 更多