Парсинг всплывающего окна
На сайте https://cinemahall24.ru/seances отображены фильмы, которые идут в кинотеатре. При нажатии на фильм появляется окно, которое нужно распарсить, для этого использую selenium, но при вызове browser.page_source я получаю html код сайта без этого окна, хотя в консоли браузера html вместе с окошком. Как получить html код сайта вместе с окошком?
Код:
browser = webdriver.Chrome()
browser.get('https://cinemahall24.ru/seances')
time.sleep(3)
cards = browser.find_elements(By.CLASS_NAME, 'widget-overlay')
for card in cards:
browser.execute_script("arguments[0].click();", card)
time.sleep(5)
print(browser.page_source)
Так тоже не работает
for card in cards:
browser.execute_script("arguments[0].click();", card)
time.sleep(5)
page = browser.find_element(By.TAG_NAME, 'html')
print(page.get_attribute('innerHTML'))
Ответы (1 шт):
Чтобы спарсить popup window нужно на него переключится. После того как второе окно появилось - получаем дескрипторы всех окон:
window_handles = browser.window_handles
Далее переключаемся на popup:(Основное окно будет иметь индекс 0, первый popup - следовательно 1)
browser.switch_to.window(window_handles[1])
Далее скрапим то что нам нужно с этого окна и не забываем переключится на основное окно обратно:
browser.switch_to.window(window_handles[0])