首页 > 解决方案 > Python Selenium - 如何单击表格中一组元素中的倒数第三个元素?

问题描述

大家好,有人可以向我解释我如何无法获得表格中的元素数量吗?我正在浏览多个长度不同的表格,并且我总是需要第三个最后一个项目。我有包含这些的表的 xpath。

使用 Selenium 的 Python API - 如何获取表中的行数?

我找到了这个答案和其他一些似乎回答了我的问题的答案,但老实说:此时我只是不明白如何在我的代码中实现它。

我正在使用 Python 3.6 和 Selenium。如果有人可以帮助我,那就太好了,因为这个小脚本每天可以为我节省 1-2 个小时的繁琐工作。

编辑:

首先我登录到我的页面,在那里我可以搜索 CustomerID,我使用以下代码:

Customer_IDs = ['100001','100002','100003']
for ID in Customer_IDs:

 customer = browser.find_element_by_id('ContentPlaceHolder1_txtcustomercode')
 customer.send_keys(ID)
 customer.send_keys(Keys.TAB)    
 browser.find_element_by_id("ContentPlaceHolder1_btnsearch").click()

 #here I want go through the table to find the amount of rows

 browser.find_element_by_id("ContentPlaceHolder1_gridview1_refid_1").click()
 browser.find_element_by_id('ContentPlaceHolder1_txtcustomercode').clear()

这个“ContentPlaceHolder1_gridview1_refid_1”基本上是我需要改变的。如果有 10 行,我将需要“ContentPlaceHolder1_gridview1_refid_7”等等。

更新 A(来自评论)

我有存储文件的表的 xpath。当我想要该表的第一个元素(“ContentPlaceHolder1_gridview1_refid_1”)时,我编写的代码可以正常工作。但我需要倒数第三个元素。

更新 B(来自评论)

表的 xpath 是:

//*[@id="ContentPlaceHolder1_gridview1"]

更新 C(来自评论)

行的 xpath 是:

标签: pythonseleniumselenium-webdriverxpathwebdriver

解决方案


要定位idContentPlaceHolder1_gridview1_refid_开头的倒数第三行元素,您可以使用以下xpath

browser.find_element_by_xpath("//*[@id='ContentPlaceHolder1_gridview1']/tbody/tr[last()-3]").click()

推荐阅读