【问题标题】:Select second tag选择第二个标签
【发布时间】:2023-04-26 19:13:01
【问题描述】:

如何从下面的 sn-p 中选择第二个 <a> 标签?

<div class="hovno">
    <a href='...'></a>
    <a href='...'></a>
</div>

我知道我可以使用以下方法找到第一个&lt;a&gt; 标签:

driver.find_element_by_css_selector("div.hovno a")

但是我不知道如何选择第二个&lt;a&gt;标签。

【问题讨论】:

    标签: python selenium css-selectors


    【解决方案1】:

    你总是可以找到所有直接的a子元素并获得第二个元素:

    driver.find_elements_by_css_selector("div.hovno > a")[1]
    

    或者,根据示例,最后一个元素也可以:

    driver.find_elements_by_css_selector("div.hovno > a")[-1]
    

    nth-of-type 伪类也是一种选择:

    driver.find_element_by_css_selector("div.hovno > a:nth-of-type(2)")
    

    【讨论】:

      【解决方案2】:

      你应该使用nth-of-type

      driver.FindElement(By.CssSelector("div.hovno a:nth-of-type(2)");
      

      【讨论】:

        【解决方案3】:

        我不确定,但试试这个

        driver.find_element_by_css_selector("div.hovno").find_element_by_tag_name('a')[2]

        【讨论】: