1. 程式人生 > >“您使用的是不受支援的命令列標記”與“Chrome 正在受到自動化軟體控制”

“您使用的是不受支援的命令列標記”與“Chrome 正在受到自動化軟體控制”

由於多種原因,好久沒寫過自動化了。又由於一些原因,又把自動化拿出來玩玩,當然不是真寫指令碼做自動化測試。然後發現開啟谷歌的時候,上面的提示變了,雖然提示好像對指令碼沒什麼影響,但是對強迫症人來說影響相當大,而且有以前的一個經驗,這個提示有些時候確實影響指令碼執行。今天就一起寫一下怎麼去掉提示。

先說第一種提示:您使用的是不受支援的命令列標記:--ignore-certificate-errors。穩定性和安全性會有所下降。

正常開啟瀏覽器是一行程式碼,要想去掉這提示就得多加兩行,解決辦法:

options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches",["ignore-certificate-errors"])
browser = webdriver.Chrome(chrome_options=options)

其中options、browser都是自定義的變數,可以自己隨便命名(給看的懂的人看,看不懂的照寫即可)。加上這三行理論上可以去掉提示,但是可能會有意外發生,加上了還提示,那就是驅動和瀏覽器的版本不是特別吻合,換個驅動或者換個瀏覽器,谷歌驅動與谷歌瀏覽器版本對映表(更新至v2.40),這裡可以看瀏覽器對應的驅動,裡面也有下載驅動的連結。需要注意:檢視谷歌瀏覽器版本的時候,可能會自動給瀏覽器升級;谷歌的驅動好像只有32位的,如果瀏覽器是64位的用不了。

我把自己電腦的谷歌瀏覽器安裝個最新的32位(原來不知道什麼時候自己升級了,而且是64位),寫指令碼執行的時候,發現上面還有提示,只是提示資訊變了:Chrome正受到自動測試軟體控制。

去掉這個提示和上面差不多,只是語句改一下:

options = webdriver.ChromeOptions()
options.add_argument('disable-infobars')
browser = webdriver.Chrome(chrome_options=options)

這三行,可以去掉提示,會不會有驅動和瀏覽器不吻合的情況就不清楚了,畢竟不是什麼問題都遇到了。

本來按著原來想的寫到這該結束了,今天又發現一件很神奇的事:電腦原來裝的python2.7和Anaconda3,雖然這樣2和3都能用,但是已經有放棄2的趨勢了,Anaconda3還是有點不太合適,有些包裝不上。今天直接把這倆和一些相關的都卸了,然後裝個python3.7,裝上趕緊試試是否裝正確了,執行指令碼看看,谷歌瀏覽器直接開啟也沒提示了!這裡說的提示是第一種,因為我這原來只出現過第一種提示。不知道什麼原因,只能歸結到python3.7上了,或者是因為剛裝了最新的selenium包。