在沒有使用close或者quit的情況下,Selenium自動(dòng)關(guān)閉瀏覽器就是因?yàn)镾elenium運(yùn)行結(jié)束了。分兩種情況:
1.程序運(yùn)行完了,所以帶著瀏覽器關(guān)閉了。
在命令行運(yùn)行時(shí),或在打包好的程序里運(yùn)行時(shí)會(huì)有這種情況;在使用Pycharm之類IDE運(yùn)行代碼的時(shí)候通常不會(huì)造成瀏覽器關(guān)閉,但也有可能在某些IDE里面出現(xiàn)。網(wǎng)上有建議使用“option.add_experimental_option("detach", True)”。但是經(jīng)測(cè)試發(fā)現(xiàn)這句效果不佳(其實(shí)在我這里基本沒有起作用)。當(dāng)然對(duì)于這種情況我們可以sleep,但是更建議把瀏覽器動(dòng)作放在一個(gè)函數(shù)里,從而和打開瀏覽器這個(gè)動(dòng)作分離:文章來源:http://www.zghlxwxcb.cn/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. 程序中斷退出,所以帶著瀏覽器關(guān)閉了。
程序運(yùn)行出錯(cuò),或者用戶中斷了運(yùn)行,造成程序中斷,帶著瀏覽器一起關(guān)閉。這種情況在使用IDE運(yùn)行代碼的時(shí)候一般不會(huì)造成瀏覽器關(guān)閉。但是在命令行運(yùn)行時(shí),或在打包好的程序里會(huì)造成瀏覽器關(guān)閉。這種情況因?yàn)闉g覽器動(dòng)作已經(jīng)被放進(jìn)函數(shù),所以只需要做個(gè)錯(cuò)誤處理即可,比如:文章來源地址http://www.zghlxwxcb.cn/news/detail-502139.html
try:
web_actions()
except:
time.sleep(1)
3.總結(jié):
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)
#這里用來保證命令行運(yùn)行的情況下,Python主程序不結(jié)束,否則會(huì)帶著Selenium徹底退出,一樣會(huì)關(guān)閉瀏覽器
input('Selenium running done.')
到了這里,關(guān)于解決Selenium自動(dòng)關(guān)閉瀏覽器問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!