pycharm打開(kāi)chrome自動(dòng)退出錯(cuò)誤的解決方法
問(wèn)題描述:
用pycharm運(yùn)行代碼打開(kāi)chrome瀏覽器后,瀏覽器自動(dòng)退出。代碼如下:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://www.baidu.com')運(yùn)行環(huán)境:
pycharm版本:2022.3
python版本:3.9.10
分析:
并沒(méi)有設(shè)置quit(),代碼執(zhí)行也沒(méi)有報(bào)錯(cuò),在網(wǎng)上搜索一番后可能的解釋和解決方法如下:
1、代碼執(zhí)行結(jié)束后線程隨主程序一起結(jié)束,內(nèi)存被回收,瀏覽器自動(dòng)關(guān)閉。(解釋這問(wèn)題屬于正常現(xiàn)象,想要保留瀏覽器可以設(shè)置sleep())
2、因?yàn)榘裠river = webdriver.Chrome()放在了函數(shù)內(nèi)部,函數(shù)執(zhí)行完畢后,程序內(nèi)所有的步驟都結(jié)束了,這段程序的進(jìn)程也就結(jié)束了,瀏覽器包含在內(nèi),所以才會(huì)自動(dòng)退出,解決方法就是設(shè)置全局變量,即把打開(kāi)瀏覽器的操作放在函數(shù)外部,函數(shù)執(zhí)行完畢,瀏覽器也不會(huì)關(guān)閉。(我的代碼沒(méi)有函數(shù),所以也不是這個(gè)問(wèn)題)
3、webdriver要與瀏覽器的版本號(hào)匹配,不然瀏覽器就會(huì)閃退。(這個(gè)現(xiàn)象是瀏覽器閃退,并且代碼執(zhí)行會(huì)有報(bào)錯(cuò),而且我的版本號(hào)也是匹配的,顯然不是這個(gè)問(wèn)題)
附上查看版本號(hào)代碼如下:
from selenium import webdriver
driver = webdriver.Chrome()
str1 = driver.capabilities['browserVersion'] #查看chrome版本
str2 = driver.capabilities['chrome']['chromedriverVersion'].split(' ')[0] #查看python下的chromedriver版本
print(str1)
print(str2)運(yùn)行結(jié)果:
(只要大版本號(hào)一致就行)

順便再附上chromedriver下載地址:
http://chromedriver.storage.googleapis.com/index.html
chromedriver.exe文件存放位置(以下路徑只是參考,根據(jù)實(shí)際環(huán)境來(lái)):
1)、python安裝目錄:C:\Users\username\AppData\Local\Programs\Python\Python39
2)、chrome安裝目錄:C:\Program Files\Google\Chrome\Application(可以不放)
2023.4.7編輯更新:經(jīng)測(cè)試,安裝了selenium版本4.8.3的情況下,即使chromedriver.exe文件不放在python安裝目錄下,運(yùn)行代碼也不會(huì)報(bào)錯(cuò),會(huì)自動(dòng)在C:\Users\用戶名\.cache\selenium\chromedriver\win32\目錄下自動(dòng)生成chromedriver.exe文件。這是老版本selenium沒(méi)有的功能,大大方便了運(yùn)行維護(hù),不用手動(dòng)更換文件了,現(xiàn)在會(huì)自動(dòng)生成了。
解決方法:
網(wǎng)上找了一圈后大致就是以上這3個(gè)觀點(diǎn),但是看其他人運(yùn)行相同的代碼,別人的chrome就不會(huì)自動(dòng)退出,經(jīng)過(guò)排查,最終確定,問(wèn)題的原因竟是selenium的版本太高導(dǎo)致,我的selenium的版本是4.7.2,不會(huì)自動(dòng)退出的版本是4.4.3。
卸載4.7.2,重新安裝4.4.3,問(wèn)題解決。
備注1:截止到發(fā)這篇文章時(shí),selenium最高版本是4.7.2。
備注2:我挑了4.4.3發(fā)現(xiàn)解決了問(wèn)題,所以也就沒(méi)有再試其他的版本,也許其他的低版本也可以解決問(wèn)題。

雜談:
也許這個(gè)chrome自動(dòng)退出的問(wèn)題其實(shí)并不是個(gè)問(wèn)題,代碼成功運(yùn)行結(jié)束,瀏覽器關(guān)閉,可能在selenium4.7.2版本上就是這樣運(yùn)行的,而低版本的selenium在代碼運(yùn)行完成之后就不會(huì)自動(dòng)關(guān)閉瀏覽器,目前來(lái)說(shuō)我比較喜歡后者,所以選擇了安裝4.4.3。
總結(jié)
到此這篇關(guān)于pycharm打開(kāi)chrome自動(dòng)退出錯(cuò)誤的解決方法的文章就介紹到這了,更多相關(guān)pycharm打開(kāi)chrome自動(dòng)退出內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python數(shù)據(jù)結(jié)構(gòu)之循環(huán)鏈表詳解
循環(huán)鏈表 (Circular Linked List) 是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的另一種形式,它將鏈表中最后一個(gè)結(jié)點(diǎn)的指針指向鏈表的頭結(jié)點(diǎn),使整個(gè)鏈表頭尾相接形成一個(gè)環(huán)形,使鏈表的操作更加方便靈活。本文將詳細(xì)介紹一下循環(huán)鏈表的相關(guān)知識(shí),需要的可以參考一下2022-01-01
轉(zhuǎn)換科學(xué)計(jì)數(shù)法的數(shù)值字符串為decimal類型的方法
今天小編就為大家分享一篇轉(zhuǎn)換科學(xué)計(jì)數(shù)法的數(shù)值字符串為decimal類型的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
Python中的numpy數(shù)組維度擴(kuò)展詳解
這篇文章主要介紹了Python中的numpy數(shù)組維度擴(kuò)展詳解,在numpy數(shù)組中,切片功能非常常用,例如x[:]表示取x的所有元素,可以通過(guò)在切片中增加None或者np.newaxis實(shí)現(xiàn),它們的作用就是在相應(yīng)的位置上增加一個(gè)維度,在這個(gè)維度上只有一個(gè)元素,需要的朋友可以參考下2023-09-09
利用Python將社交網(wǎng)絡(luò)進(jìn)行可視化
這篇文章介紹了利用Python將社交網(wǎng)絡(luò)進(jìn)行可視化,主要是一些Python的第三方庫(kù)來(lái)進(jìn)行社交網(wǎng)絡(luò)的可視化,利用領(lǐng)英(Linkedin)的社交關(guān)系數(shù)據(jù)展開(kāi)介紹,內(nèi)容可當(dāng)學(xué)習(xí)練習(xí)題有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-06-06
Python爬蟲(chóng)基礎(chǔ)之爬蟲(chóng)的分類知識(shí)總結(jié)
來(lái)給大家講python爬蟲(chóng)的基礎(chǔ)啦,首先我們從爬蟲(chóng)的分類開(kāi)始講起,下文有非常詳細(xì)的知識(shí)總結(jié),對(duì)正在學(xué)習(xí)python的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05
以一段代碼為實(shí)例快速入門(mén)Python2.7
這篇文章主要以一段代碼為實(shí)例、簡(jiǎn)單介紹了Python2.7的各種函數(shù)和方法以及語(yǔ)句,來(lái)自網(wǎng)絡(luò)上火爆的在線Python教程網(wǎng)站learnxinyminutes.com,需要的朋友可以參考下2015-03-03
Pytorch實(shí)現(xiàn)將label變成one hot編碼的兩種方式
這篇文章主要介紹了Pytorch實(shí)現(xiàn)將label變成one hot編碼的兩種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02

