Python Selenium,select html DOM 中的下一个元素

Python Selenium, select the next element in html DOM

我必须在页面上进行一些自动化。 该页面由 table 组成,其中每个 td 元素中我有 2 个 a 标签,第一个带有 class , 第二个没有 class 或 id.

我可以很容易地 select 带有 class 的那个,但是如何得到另一个呢?有没有办法 select 像 css 中的另一个元素旁边的元素?

这是页面结构的草稿

<table>
    <tr>    
        <td>
            <a class="mylink"> element 1 </a>
            <a>
                <img src="">
            </a>
        </td>
    </tr>
    <tr>    
        <td>
            <a class="mylink"> element 2 </a>
            <a>
                <img src="">
            </a>
        </td>
    </tr>
</table>

我可以select第一个

fileLinkClass = "mylink"
driver.find_element(by=By.CLASS_NAME, value=fileLinkClass)

但我需要 select 并单击没有 class 的 link。我怎样才能做到这一点? 非常感谢

尝试使用 css 选择器

对于单个元素选择

 driver.find_element(By.CSS_SELECTOR,'.mylink + a')

多元素选择

driver.find_elements(By.CSS_SELECTOR,'.mylink + a')

点击创建列表切片然后点击。例如:

element = driver.find_elements(By.CSS_SELECTOR,'.mylink + a')
element = element[0].clik()
element = element[1].clik()

您可以使用 xpath 选择器

'//td/a[2]'

查找 'td'

下的所有第二个 'a'