@TempUserForToster

Как реализовать обращение к элементу всплывающего окна при помощи Selenium?

На странице сайта имеется форма и кнопка.

После заполнения формы и нажатия на кнопку появляется всплывающее окно с еще одной кнопкой. При этом DOM обновляется и в него добавляется код всплывшего окна.

Подскажите, пожалуйста, как при помощи Selenium нажать на кнопку во всплывшем окне?

Забегая вперед, пробовал (код на Python):

1)
WebDriverWait(driver, 10);
driver.find_element_by_xpath("//div[@id='nameId']/div/div[2]").click();

Вызывает ошибку:
selenium.common.exceptions.NoSuchElementException: Message: 'Unable to locate 
element: {"method":"xpath","selector":"//div[@id=\'nameId\']/div/div[2]"}'

2)
driver.switch_to_alert();
driver.find_element_by_xpath("//div[@id='nameId']/div/div[2]").click()

Но он создает ошибку:
selenium.common.exceptions.NoSuchElementException: Message: 'Unable to locate 
element: {"method":"xpath","selector":"//div[@id=\'nameId\']/div/div[2]"}' ;

Если код заменить на:
driver.switch_to_alert();
driver.find_elements_by_xpath("//div[@id='nameId']/div/div[2]").click()

то появляется ошибка:
AttributeError: ‘list’ object has no attribute ‘click’

UPD:

Вопрос решен.

Всплывающее окно оказалось просто новым элемент в HTML-тэге исходной страницы.

Для обращения к элементу появившегося окна необходимо выполнить (XPath изменен на корректный):

time.sleep(10)
driver.find_element_by_xpath("//div[@class='nameId']/div[@sbisname='Ok']/div").click();
  • Вопрос задан
  • 13734 просмотра
Пригласить эксперта
Ответы на вопрос 1
Здравствуйте. Вам нужен метод switch_to_popup, возможно switch_to_popup_window.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы