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