Python Selenium - Как я могу щелкнуть по третьему последнему элементу из группы элементов в таблице? - PullRequest
0 голосов
/ 15 ноября 2018

Добрый день всем, Может кто-нибудь объяснить мне, как я не могу получить количество элементов в таблице? Я бегу по нескольким таблицам, которые имеют разную длину, и мне всегда нужен третий последний элемент. У меня есть xpath таблицы, в которой они содержатся.

Использование API-интерфейса Selenium Python - Как узнать количество строк в таблице?

Я нашел этот ответ и некоторые другие ответы, которые, кажется, отвечают на мой вопрос, но, честно говоря: на данный момент я просто не понимаю, как внедрить это в мой код.

Я использую Python 3.6 и Selenium. Было бы здорово, если бы кто-нибудь мог мне помочь, так как этот маленький сценарий мог бы сэкономить мне 1-2 часа утомительной работы каждый день.

EDIT:

Сначала я захожу на свою страницу, где я могу искать там идентификаторы клиентов. Я использую следующий код:

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 (из комментариев)

Путь таблицы:

//*[@id="ContentPlaceHolder1_gridview1"]

Обновление C (из комментариев)

Пути к строкам:

  • //*[@id="ContentPlaceHolder1_gridview1"]/tbody/tr[1]
  • //*[@id="ContentPlaceHolder1_gridview1"]/tbody/tr[2]

1 Ответ

0 голосов
/ 15 ноября 2018

Чтобы найти третий последний элемент строки с id , начинающимся как ContentPlaceHolder1_gridview1_refid_ , вы можете использовать следующие xpath :

browser.find_element_by_xpath("//*[@id='ContentPlaceHolder1_gridview1']/tbody/tr[last()-3]").click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...