Выбор каждого параметра из раскрывающегося списка с использованием селенового питонаPython

Программы на Python
Anonymous
Выбор каждого параметра из раскрывающегося списка с использованием селенового питона

Сообщение Anonymous »

Я пытаюсь извлечь некоторые данные с веб-сайта. Однако сайт имеет иерархическую структуру. Вверху есть раскрывающееся меню, значением параметра которого являются URL-адреса. Таким образом, мои подходы таковы:
  • найти раскрывающийся список,
  • выбрать вариант,
  • извлеките некоторые данные и
  • повторите шаги 2–4 для всех доступных вариантов.
Ниже приведен мой код, я могу извлечь данные по выбранному по умолчанию варианту (первый). Но я получил сообщение об ошибке: Элемент не найден в кеше — возможно, страница изменилась с момента ее поиска. Кажется, мой браузер не переключился на новую страницу. Я попробовал time.sleep() или driver.refresh(), но не получилось... Любые предложения приветствуются!

001 Key
002 Key


# select the dropdown menu
select_box = Select(driver.find_element_by_xpath("//select[@class='form-control']"))
# get all options
options = select_box.options

for ele_index, element in enumerate(options):
# select a url
select_box.select_by_index(ele_index)
time.sleep(5)
print element.text

# extract page data
id_comp_html = driver.find_elements_by_class_name('HorDL')
for q in id_comp_html:
print q.get_attribute("innerHTML")
print "============="

обновление 1 (на основе решения alecxe)
# dropdown menu
select_box = Select(driver.find_element_by_xpath("//select[@class='form-control']"))
options = select_box.options

for ele_index in range(len(options)):
# select a url
select_box = Select(driver.find_element_by_xpath("//select[@class='form-control']"))
print select_box.options[ele_index].text
select_box.select_by_index(ele_index)
# print element.text
# print "======"
driver.implicitly_wait(5)
id_comp_html = driver.find_elements_by_class_name('HorDL')
for q in id_comp_html:
print q.get_attribute("innerHTML")
print "============="


Подробнее здесь: https://stackoverflow.com/questions/437 ... ium-python

Вернуться в «Python»