大家好,有人能向我解释一下我为什么不能得到表中元素的数量吗?我正在浏览多个长度不同的表格,我总是需要倒数第三个项目。我有包含这些的表的xpath。
使用硒';s Python API-如何获取表中的行数?
我找到了这个答案和其他一些答案,这些答案似乎回答了我的问题,但说实话:在这一点上,我只是不明白如何将其实现到我的代码中。
我使用的是Python 3.6和Selenium。如果有人能帮我,那就太好了,因为这个小脚本每天可以为我节省1-2个小时的乏味工作。
编辑:
首先,我登录到我的页面,在那里我可以搜索客户ID。我使用以下代码:
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]
要查找id以ContentPlaceHolder1_gridview1_refid开头的倒数第三行元素,可以使用以下xpath:
browser.find_element_by_xpath("//*[@id='ContentPlaceHolder1_gridview1']/tbody/tr[last()-3]").click()