@Shulaishull

Почему селениум не находит кнопку по xpath и link_text?

Не могу подтянуть элемент в selenium
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"link text","selector":"Открыть в окне"}


selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="ext-gen956"]"}


613e77eab6fa8813276604.png

driver.find_element_by_id("ext-gen956").click()
driver.find_element_by_xpath("//*[@id="ext-gen956"]").click()
driver.find_element_by_link_text('Открыть в окне').click()
  • Вопрос задан
  • 1206 просмотров
Пригласить эксперта
Ответы на вопрос 1
driver.find_element_by_id("ext-gen956").click()
driver.find_element_by_xpath("//*[@id="ext-gen956"]").click()
driver.find_element_by_link_text('Открыть в окне').click()

1 строка - всё ок
2 строка - видимо кривой xpath. Ну и в данном случае ещё и кавычки кривые
3 строка - не будет находить элемент, тк она ищет ссылки, а указанный элемент на самом деле является кнопкой.

При чём тут AJAX я так и не понял

UPD: Проблема в том, что этот элемент находится внутри iframe.
Хоть и кажется, что его содержимое является частью страницы - это не так.
На него нужно сначала переключиться:
driver.switch_to.frame(driver.find_element_by_css_selector("iframe")) # тут селектор на нужный iframe

Воспринимайте iframe, как отдельную страницу/окно/вкладку в браузере, которая магическим образом отрисовывается внутри основной страницы.
Ответ написан
Ваш ответ на вопрос

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

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