Я пытаюсь получить доступ к элементам html с html-страницы, с которой я обращаюсь с помощью window.open().Получение html-элементов другой страницы с помощью window.open()
Это мои HTMLs:
firstpage.html:
<html>
<body>
<script>
function openPage() {
return window.open("secondpage.html")
}
</script>
</body>
</html>
secondpage.html
<html>
<body>
<h1>Hello!</h2>
<p>This is the second page</p>
</body>
</html>
Это то, что я делаю:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get("firstpage.html")
html = browser.execute_script("return openPage().document;")
print html
Что Я ожидаю получить рефери к элементу документа второй страницы. Это похоже на веб-консоль Firefox. Когда я тестирую скрипт, открывается вторая страница, но первая страница, похоже, зависает, и через некоторое время я получаю диалог, говорящий:
«Сценарий на этой странице может быть занят или он может перестать отвечать. может остановить скрипт сейчас, или вы можете продолжать видеть, будет ли скрипт завершен ».
С кнопками «Стоп» и «Продолжить». Нажимая «Продолжить», диалог продолжает появляться, когда я в конечном итоге нажимаю «Стоп», переменная html python содержит тот же текст диалога.
Что я делаю неправильно?
EDIT: Как и в @ e1che ответ, это правильный способ сделать это:
firstpage.html:
<html>
<body>
<script>
function openPage() {
window.open("secondpage.html", "secondpagewindow")
}
</script>
</body>
</html>
Питон Код:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get("firstpage.html")
browser.execute_script("openPage()")
browser.switch_to_window("secondpagewindow")
print browser.page_source