2016-11-12 2 views
0

Так что я хочу найти элементы внутри тега iframe. Однако в html-источнике нет тега iframe. Тем не менее, если я проверяю элемент. Как это решить, используя библиотеку Selenium в Python 2.7?Как нажимать на элемент в скрытом iframe, используя Python Selenium

источник HTML

Screenshot

.

Осмотрите элемент

Screenshot

Все ответы приветствуются!

+0

Перед использованием элементов поиска под этим фреймом вы использовали webdriver.switchTo(). Frame ("card-field ...")? – Moshisho

+0

@Moshisho Я не могу этого сделать, потому что селен использует исходный код HTML, а не код из элемента проверки. В исходном коде iframe даже не упоминается. Idk, как решить эту проблему :( –

+0

Получил этот исходный код с помощью Selenium getPageSource()? Можете ли вы добавить свой код к вопросу? И у вас есть пример URL-адреса? – Moshisho

ответ

0

Если он динамически сгенерирован, он может объяснить, почему он не найден в селен версии DOM. Вы все равно можете получить его, используя javascript в своем коде.

driver.execute_script("return document.getElementsByClassName('card-fields-iframe')") 
+0

Когда вы говорите динамически сгенерированный, вы имеете в виду использование JavaScript? Как в DHTML https://en.wikipedia.org/wiki/Dynamic_HTML?wprov=sfsi1? Или, может быть, я что-то пропустил ... – Moshisho

+0

да. Через предварительно написанный javascript или какой-либо ответ с сервера через AJAX – ProgrammerAdept

+0

if сгенерированный HTML был вставлен на страницу (а не в память, ожидающую какого-либо действия), что обычно имеет место, selenium может получить доступ к этому элементу, поскольку он всегда имеет самую последнюю DOM, то есть то, что пользователь видит и имеет доступ (через интроспекцию например). – Moshisho

Смежные вопросы