Когда у меня есть селен, нажмите кнопку на веб-странице, откроется всплывающее окно, и я попробовал несколько способов переключиться на всплывающее окно iframe, но я использую
WebDriverWait(driver, 10).until()
и через 10 секунд будет просто тайм-аут. Я предполагаю, что это никогда не распознает iframe, и я уверен, что это должно быть, потому что я заставляю его искать это неправильно. Вот HTML-код:
всплывающее окно, содержащее iframe, имеет следующий HTML-код:
<div class="indeed-apply-popup" tabindex="0" id="indeed-ia-1530049657884-0-modal" style="position: absolute; left: 208px; top: 80px;"><div class="indeed-apply-container" id="indeedapply-modal-preload-container" style="height: 572px; width: 540px;"><div class="indeed-apply-branding" id="indeedapply-modal-preload-branding"></div><div class="indeed-apply-bd" id="indeedapply-modal-preload-bd">
Часть моего кода, которую я использую, выглядит следующим образом:
for item in page_results:
item.click()
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CLASS_NAME, 'indeed-apply-button-label'))
)
apply_button = driver.find_element_by_class_name('indeed-apply-button-label')
WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.CLASS_NAME, 'indeed-apply-button-label'))
)
apply_button.click()
WebDriverWait(driver, 10).until(
EC.frame_to_be_available_and_switch_to_it((By.NAME, 'indeedapply-modal-preload-iframe'))
)
WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.XPATH, "//*[@id='form-action-continue']"))
)
continue_button = driver.find_element_by_id('form-action-continue')
continue_button.click()
Но я получаю ошибку:
line 70, in <module>
EC.frame_to_be_available_and_switch_to_it((By.NAME, "indeedapply-modal-preload-iframe"))
line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
Я пытался самостоятельно использовать driver.switch_to.frame () после и до WebDriverWait, но ничего не получилось. Даже если я укажу, что сообщение о тайм-ауте больше не отображается, следующее
continue_button
Не распознается, и тогда я получаю сообщение о том, что элемент не существует.