Python Selenium-如何单击表中一组元素中的倒数第三个元素



大家好,有人能向我解释一下我为什么不能得到表中元素的数量吗?我正在浏览多个长度不同的表格,我总是需要倒数第三个项目。我有包含这些的表的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]

要查找idContentPlaceHolder1_gridview1_refid开头的倒数第三行元素,可以使用以下xpath

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

最新更新