如何在Python Selenium中点击具有相同属性的第二个元素?
定位并点击同属性的第二个元素
场景还原
目标HTML结构如下:
<table id="FolderIcons" class="mstrLargeIconView"> <tbody> <tr> <td class="mstrLargeIconView" colspan="1" rowspan="1"></td> <td class="mstrLargeIconView" colspan="1" rowspan="1"></td> </tr> </tbody> </table>
当前已实现点击第一个td元素的代码:
wait.until(EC.visibility_of_element_located((By.XPATH,"//td[@rowspan='1']"))).click()
解决方案
可以通过以下几种方式定位并点击第二个td元素:
方法1:XPath直接指定索引
XPath的索引从1开始,直接在属性筛选条件后添加[2],即可定位第二个符合属性要求的元素:
wait.until(EC.visibility_of_element_located((By.XPATH,"//td[@rowspan='1'][2]"))).click()
方法2:限定父元素范围(更精准)
为避免页面其他区域存在相同属性的td造成干扰,可通过目标表格的ID缩小查找范围,直接定位表格内的第二个td:
wait.until(EC.visibility_of_element_located((By.XPATH,"//table[@id='FolderIcons']//tr/td[2]"))).click()
方法3:结合属性与父元素限定(最严谨)
同时保留属性筛选和父元素范围限制,确保定位的元素完全匹配需求:
wait.until(EC.visibility_of_element_located((By.XPATH,"//table[@id='FolderIcons']//td[@rowspan='1'][2]"))).click()
内容的提问来源于stack exchange,提问作者Gabs_dot
相关产品推荐
相关产品推荐

