如果我从Python启动Selenium并关闭浏览器窗口,那么下次我尝试让WebDriver执行某些操作时,我的脚本会挂起。请注意,我关闭浏览器窗口,同时让浏览器保持打开状态 - 我在Mac上,浏览器可以使用它(Chrome,在我的浏览器中) case)即使没有任何窗户也要保持开放状态。这是一个例子:
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.stackoverflow.com/")
time.sleep(5) # Let's say we close Chrome window during this time
print "Trying to open second page"
driver.get("http://www.python.org/")
print "You won't get here if you closed the Chrome window"
理想情况下,我希望Selenium为我创建一个新窗口,或者告诉我没有打开的窗口让我自己创建一个窗口。
答案 0 :(得分:0)
这不会发生什么。您看到的浏览器窗口无法通过selenium与之交谈。
Selenium生成一个浏览器,其中w3c组件正在运行并且能够与之通信。这有点像一个生活在网络浏览器中的迷你http服务器,selenium谈论点击事物并做它的业务。它被称为WebDriver。 http://www.w3.org/TR/webdriver/
当你关闭浏览器打开并与selenium接口时...你正在破坏selenium制作的套接字连接,但它无法找到它。
AFAIK:Selenium正在与浏览器的webdriver界面交谈。
你的程序必须寻找活跃的浏览器,获取他们的内存地址,打开一个新的selenium-webdriver并指向它...这需要重新编写selenium源,因为调用webdriver现在启动一个新的浏览器实例。