今天是个好日子,
有人可以向我解释一下我如何无法获取表中的元素数量吗?我正在浏览多个具有不同长度的表格,并且我总是需要第三个最后一项。我有包含这些的表的 xpath。
使用 Selenium 的 Python API - 如何获取表中的行数? https://stackoverflow.com/questions/4903144/using-seleniums-python-api-how-do-i-get-the-number-of-rows-in-a-table
我找到了这个答案和其他一些答案似乎回答了我的问题,但说实话:此时我只是不明白如何将其实现到我的代码中。
我正在使用 Python 3.6 和 Selenium。如果有人能帮助我那就太好了,因为这个小脚本可以每天节省我 1-2 小时的繁琐工作。
EDIT:
首先,我登录到我的页面,我可以在其中搜索 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 是:
//*[@id="ContentPlaceHolder1_gridview1"]/tbody/tr[1]
-
//*[@id="ContentPlaceHolder1_gridview1"]/tbody/tr[2]