Перебирая все элементы, когда я не знаю диапазон - PullRequest
0 голосов
/ 08 марта 2020

Я использую chromedriver и selenium для извлечения данных.

Я застрял в одной точке: мне нужно перебрать весь список (все элементы), но диапазон постоянно меняется .

Я написал что-то вроде этого:

for i in range(len()):
    browser.find_element_by_xpath('/html/body/form[2]/table/tbody/tr[1]/td[1]/select/option[{}]'.format(i)).click()

Как мне написать свою команду для l oop тогда?

Примечание: скобки под опциями меняются вместе с элемент списка, пример: опция 1, 2, ...

1 Ответ

0 голосов
/ 08 марта 2020

В Python, for работает для списков, например foreach на некоторых других языках (Java, C#).

Так что вы можете просто go через список напрямую , Вам не нужно знать длину. На основании документов find_elements_by_xpath возвращает список. Итак:

for elem in browser.find_elements_by_xpath('/html/body/form[2]/table/tbody/tr[1]/td[1]/select/option'):
    elem.click()

Читая это, кажется, что xpath для получения всех опций просто так, так что должно работать. Xpath выбрать все дочерние узлы

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