大家好, 有人可以向我解释我如何无法获取表中的元素数量吗?我正在遍历多个表,这些表都有不同的长度,并且我总是需要最后三项。我有包含那些表的xpath。
Using Selenium's Python API - How do I get the number of rows in a table?
我找到了这个答案以及其他一些似乎可以回答我问题的答案,但是老实说:在这一点上,我只是不了解如何在我的代码中实现它。
我正在使用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”,依此类推。
我有文件存储表的xpath。当我想要该表的第一个元素(“ ContentPlaceHolder1_gridview1_refid_1”)时,我编写的代码可以正常工作。但是我需要倒数第二个元素。
表的xpath是:
//*[@id="ContentPlaceHolder1_gridview1"]
行的xpath是:
//*[@id="ContentPlaceHolder1_gridview1"]/tbody/tr[1]
//*[@id="ContentPlaceHolder1_gridview1"]/tbody/tr[2]
答案 0 :(得分:2)
要查找以 ContentPlaceHolder1_gridview1_refid _ 开始的 id 倒数第三行元素,可以使用以下 xpath :
browser.find_element_by_xpath("//*[@id='ContentPlaceHolder1_gridview1']/tbody/tr[last()-3]").click()