Как эффективно выполнить итерацию номера таблицы в Selenium Webdriver с использованием Python?

#python #python-3.x #selenium #selenium-webdriver

#python #python-3.x #селен #selenium-webdriver

Вопрос:

Пожалуйста, подскажите мне, как эффективно изменить tr[1], [2], [3] или N чисел, автоматически следуя таблице, представленной на веб-сайте

код :

 browser.find_element_by_xpath('//*[@id="event"]/tbody/tr[1]/td[9]').click()
browser.find_element_by_xpath('//*[@id="event"]/tbody/tr[2]/td[9]').click()
browser.find_element_by_xpath('//*[@id="event"]/tbody/tr[3]/td[9]').click()
 

Ответ №1:

Попробуйте, как показано ниже:

 options = browser.find_elements_by_xpath('//*[@id="event"]/tbody/tr') # this xpath should highlight all the tr tags in the DOM

for opt in options:
    opt.find_element_by_xpath('./td[9]') # this should get the 9th td tag of that particular tr. Use a "." in the xpath to find element within an element.
 

Комментарии:

1. Большое спасибо, немыслимо

Ответ №2:

Вы можете рассмотреть возможность использования find_elements_by_xpath('.//tr') вместо find_element_by_xpath .

В качестве альтернативы вы можете использовать простой цикл for с исключением попытки. Это не самый элегантный способ, но он даст вам все N строк перед выходом из-за исключения.