我正在尝试使用Selenium自动填写this form。表单由两页组成,两页都需要填写。通过单击“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
。
我已关注this answer。
如何命令selenium专注于新页面?
为了填写表格中的字段,我在第一页上使用例如城市字段,
city = browser.find_element_by_id("contactForm-city")
city.clear()
city.send_keys('Berlin')