pycharm打開chrome自動退出錯誤的解決方法
問題描述:
用pycharm運行代碼打開chrome瀏覽器后,瀏覽器自動退出。代碼如下:
from selenium import webdriver driver = webdriver.Chrome() driver.get('http://www.baidu.com')
運行環(huán)境:
pycharm版本:2022.3
python版本:3.9.10
分析:
并沒有設(shè)置quit(),代碼執(zhí)行也沒有報錯,在網(wǎng)上搜索一番后可能的解釋和解決方法如下:
1、代碼執(zhí)行結(jié)束后線程隨主程序一起結(jié)束,內(nèi)存被回收,瀏覽器自動關(guān)閉。(解釋這問題屬于正?,F(xiàn)象,想要保留瀏覽器可以設(shè)置sleep())
2、因為把driver = webdriver.Chrome()放在了函數(shù)內(nèi)部,函數(shù)執(zhí)行完畢后,程序內(nèi)所有的步驟都結(jié)束了,這段程序的進(jìn)程也就結(jié)束了,瀏覽器包含在內(nèi),所以才會自動退出,解決方法就是設(shè)置全局變量,即把打開瀏覽器的操作放在函數(shù)外部,函數(shù)執(zhí)行完畢,瀏覽器也不會關(guān)閉。(我的代碼沒有函數(shù),所以也不是這個問題)
3、webdriver要與瀏覽器的版本號匹配,不然瀏覽器就會閃退。(這個現(xiàn)象是瀏覽器閃退,并且代碼執(zhí)行會有報錯,而且我的版本號也是匹配的,顯然不是這個問題)
附上查看版本號代碼如下:
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)
運行結(jié)果:
(只要大版本號一致就行)
順便再附上chromedriver下載地址:
http://chromedriver.storage.googleapis.com/index.html
chromedriver.exe文件存放位置(以下路徑只是參考,根據(jù)實際環(huán)境來):
1)、python安裝目錄:C:\Users\username\AppData\Local\Programs\Python\Python39
2)、chrome安裝目錄:C:\Program Files\Google\Chrome\Application(可以不放)
2023.4.7編輯更新:經(jīng)測試,安裝了selenium版本4.8.3的情況下,即使chromedriver.exe文件不放在python安裝目錄下,運行代碼也不會報錯,會自動在C:\Users\用戶名\.cache\selenium\chromedriver\win32\目錄下自動生成chromedriver.exe文件。這是老版本selenium沒有的功能,大大方便了運行維護(hù),不用手動更換文件了,現(xiàn)在會自動生成了。
解決方法:
網(wǎng)上找了一圈后大致就是以上這3個觀點,但是看其他人運行相同的代碼,別人的chrome就不會自動退出,經(jīng)過排查,最終確定,問題的原因竟是selenium的版本太高導(dǎo)致,我的selenium的版本是4.7.2,不會自動退出的版本是4.4.3。
卸載4.7.2,重新安裝4.4.3,問題解決。
備注1:截止到發(fā)這篇文章時,selenium最高版本是4.7.2。
備注2:我挑了4.4.3發(fā)現(xiàn)解決了問題,所以也就沒有再試其他的版本,也許其他的低版本也可以解決問題。
雜談:
也許這個chrome自動退出的問題其實并不是個問題,代碼成功運行結(jié)束,瀏覽器關(guān)閉,可能在selenium4.7.2版本上就是這樣運行的,而低版本的selenium在代碼運行完成之后就不會自動關(guān)閉瀏覽器,目前來說我比較喜歡后者,所以選擇了安裝4.4.3。
總結(jié)
到此這篇關(guān)于pycharm打開chrome自動退出錯誤的解決方法的文章就介紹到這了,更多相關(guān)pycharm打開chrome自動退出內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python數(shù)據(jù)結(jié)構(gòu)之循環(huán)鏈表詳解
循環(huán)鏈表 (Circular Linked List) 是鏈?zhǔn)酱鎯Y(jié)構(gòu)的另一種形式,它將鏈表中最后一個結(jié)點的指針指向鏈表的頭結(jié)點,使整個鏈表頭尾相接形成一個環(huán)形,使鏈表的操作更加方便靈活。本文將詳細(xì)介紹一下循環(huán)鏈表的相關(guān)知識,需要的可以參考一下2022-01-01轉(zhuǎn)換科學(xué)計數(shù)法的數(shù)值字符串為decimal類型的方法
今天小編就為大家分享一篇轉(zhuǎn)換科學(xué)計數(shù)法的數(shù)值字符串為decimal類型的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07Python中的numpy數(shù)組維度擴(kuò)展詳解
這篇文章主要介紹了Python中的numpy數(shù)組維度擴(kuò)展詳解,在numpy數(shù)組中,切片功能非常常用,例如x[:]表示取x的所有元素,可以通過在切片中增加None或者np.newaxis實現(xiàn),它們的作用就是在相應(yīng)的位置上增加一個維度,在這個維度上只有一個元素,需要的朋友可以參考下2023-09-09利用Python將社交網(wǎng)絡(luò)進(jìn)行可視化
這篇文章介紹了利用Python將社交網(wǎng)絡(luò)進(jìn)行可視化,主要是一些Python的第三方庫來進(jìn)行社交網(wǎng)絡(luò)的可視化,利用領(lǐng)英(Linkedin)的社交關(guān)系數(shù)據(jù)展開介紹,內(nèi)容可當(dāng)學(xué)習(xí)練習(xí)題有一定的參考價值,需要的小伙伴可以參考一下2022-06-06Python爬蟲基礎(chǔ)之爬蟲的分類知識總結(jié)
來給大家講python爬蟲的基礎(chǔ)啦,首先我們從爬蟲的分類開始講起,下文有非常詳細(xì)的知識總結(jié),對正在學(xué)習(xí)python的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05Pytorch實現(xiàn)將label變成one hot編碼的兩種方式
這篇文章主要介紹了Pytorch實現(xiàn)將label變成one hot編碼的兩種方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02