在没有使用close或者quit的情况下,Selenium自动关闭浏览器就是因为Selenium运行结束了。分两种情况:
1.程序运行完了,所以带着浏览器关闭了。
在命令行运行时,或在打包好的程序里运行时会有这种情况;在使用Pycharm之类IDE运行代码的时候通常不会造成浏览器关闭,但也有可能在某些IDE里面出现。网上有建议使用“option.add_experimental_option("detach", True)”。但是经测试发现这句效果不佳(其实在我这里基本没有起作用)。当然对于这种情况我们可以sleep,但是更建议把浏览器动作放在一个函数里,从而和打开浏览器这个动作分离:文章来源:https://www.toymoban.com/news/detail-502139.html
s = Service(r"C:\xxxxxxx\chromedriver.exe")
WD = webdriver.Chrome(service = s)
def web_actions():
WD.maximize_window()
WD.get("https://xxxxxxx")
.....
web_actions()
2. 程序中断退出,所以带着浏览器关闭了。
程序运行出错,或者用户中断了运行,造成程序中断,带着浏览器一起关闭。这种情况在使用IDE运行代码的时候一般不会造成浏览器关闭。但是在命令行运行时,或在打包好的程序里会造成浏览器关闭。这种情况因为浏览器动作已经被放进函数,所以只需要做个错误处理即可,比如:文章来源地址https://www.toymoban.com/news/detail-502139.html
try:
web_actions()
except:
time.sleep(1)
3.总结:
s = Service(r"C:\xxxxxxx\chromedriver.exe")
WD = webdriver.Chrome(service = s)
def web_actions():
WD.maximize_window()
WD.get("https://xxxxxxx")
.....
try:
web_actions()
except:
time.sleep(1)
#这里用来保证命令行运行的情况下,Python主程序不结束,否则会带着Selenium彻底退出,一样会关闭浏览器
input('Selenium running done.')
到了这里,关于解决Selenium自动关闭浏览器问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!