На странице сайта имеется форма и кнопка.
После заполнения формы и нажатия на кнопку появляется всплывающее окно с еще одной кнопкой. При этом 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();