Selenium Python: как подсчитать количество таблиц в div? - PullRequest
0 голосов
/ 07 октября 2019

Я пытаюсь найти элемент с Xpath, но он меняется следующим образом:

//*[@id="emailwrapper"]/div/div/table[1]/tbody/tr/td[2]/a
//*[@id="emailwrapper"]/div/div/table[2]/tbody/tr/td[2]/a
//*[@id="emailwrapper"]/div/div/table[3]/tbody/tr/td[2]/a
//*[@id="emailwrapper"]/div/div/table[4]/tbody/tr/td[2]/a
//*[@id="emailwrapper"]/div/div/table[5]/tbody/tr/td[2]/a
//*[@id="emailwrapper"]/div/div/table[6]/tbody/tr/td[2]/a

Мое текущее предположение состоит в том, что таблица, которую я ищу, всегда будет последней в массиве таблиц. но я хочу подтвердить это, посчитав количество таблиц во втором div. Кто-нибудь знает, как это сделать?

Ответы [ 2 ]

0 голосов
/ 07 октября 2019

Простое решение - использовать следующий xpath.

//*[@id='emailwrapper']/div/div/table

Ваш код должен быть

lastTable = len(driver.find_elements_by_xpath("//*[@id='emailwrapper']/div/div/table"))-1
print lastTable
0 голосов
/ 07 октября 2019

Предполагая, что хотя бы один элемент соответствует xpath '// * [@ id = "emailwrapper"] / div / div / table', вы можете просто сделать:

driver.find_elements_by_xpath('//*[@id="emailwrapper"]/div/div/table')

Он вернет список или вызовет NoSuchElementException, если ничего не найдено.

Точные те же результаты, но написанные по-другому:

from selenium.webdriver.common.by import By
driver.find_elements(By.XPATH, '//*[@id="emailwrapper"]/div/div/table')

После чего вы можете сделать len () в списке длясколько элементов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...