Я пытаюсь заполнить эту форму автоматически, используя Selenium. Форма состоит из двух страниц, которые необходимо заполнить. Перейдите на вторую страницу, нажав оранжевую кнопку с надписью "Weiter".
У меня есть следующий код,
# load form into chrome, directly via its url
ad_url = 'https://www.immobilienscout24.de/expose/97655130'
form_url_end = '#/basicContact/email'
url = ad_url + form_url_end
browser = webdriver.Chrome()
browser.get(url)
# code which fills out first page correctly
# switch to second page
window_before = browser.window_handles[0]
browser.find_element_by_xpath(
'//*[@id="is24-de"]/div[2]/div/div[2]/div[1]/form/div/div/div[4]/div[2]/button',
).click()
window_after = browser.window_handles[1]
browser.switch_to.window(window_after)
Эти коды отлично работают до последней строки -
browser.switch_to.window(window_after)
, что дает IndexError: list index out of range
.
Я следил за этим ответом.
Как мне настроить selenium на новую страницу?
Чтобы заполнить поля в форме, я использую, например, для поля города на первой странице,
city = browser.find_element_by_id("contactForm-city")
city.clear()
city.send_keys('Berlin')