Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果我关闭浏览器窗口,Selenium(来自Python)将挂起_Python_Macos_Google Chrome_Selenium - Fatal编程技术网

如果我关闭浏览器窗口,Selenium(来自Python)将挂起

如果我关闭浏览器窗口,Selenium(来自Python)将挂起,python,macos,google-chrome,selenium,Python,Macos,Google Chrome,Selenium,如果我从Python启动Selenium并关闭浏览器窗口,那么下次尝试让WebDriver执行某些操作时,我的脚本将挂起。请注意,我关闭浏览器窗口的同时保持浏览器本身的打开状态——我在Mac电脑上,即使没有任何窗口,浏览器(在我的例子中是Chrome)也可能保持打开状态。下面是一个例子: import time from selenium import webdriver driver = webdriver.Chrome() driver.get("http://www.stackoverf

如果我从Python启动Selenium并关闭浏览器窗口,那么下次尝试让WebDriver执行某些操作时,我的脚本将挂起。请注意,我关闭浏览器窗口的同时保持浏览器本身的打开状态——我在Mac电脑上,即使没有任何窗口,浏览器(在我的例子中是Chrome)也可能保持打开状态。下面是一个例子:

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为我创建一个新窗口,或者让我告诉你没有打开的窗口,让我自己创建一个。

这不是将要发生的事情。selenium无法访问您看到的所有浏览器窗口

Selenium生成了一个运行w3c组件并可以与之对话的浏览器。这有点像一个生活在web浏览器中的迷你http服务器,selenium通过它来点击东西并做它的生意。它叫WebDriver。

当您关闭浏览器时,已打开并与selenium交互。。。您正在断开selenium建立的套接字连接,但它找不到它

AFAIK:Selenium只是在与浏览器的webdriver界面交谈


您的程序必须查找活动浏览器,获取它们的内存地址,打开一个新的selenium webdriver并指向它。。。这需要重新编写selenium源代码,因为现在调用webdriver会启动一个新的浏览器实例。

好的,谢谢。是否有一种方法可以检测到套接字已断开(而不是让我的程序挂起)?或者可以
driver.get(“http://www.python.org/“
必须打开一个新的插座,而不是等待(现在已经死了的)旧插座?正如他们所说,这超出了Selenium的范围。该项目的目标并不是在交互式机器人/浏览器中使用,而是提供一个模拟使用该浏览器的人的界面。德国劳埃德船级社!