關於python selenium 運行時彈出窗口問題

近期在做一個網頁代填項目時,用到瞭python的selenium,雖然實現瞭代填功能但是每次運行時都會彈出窗口,初始是python窗口,後續改進瞭又彈出瞭driver的窗口。在我看來是無傷大雅的,不過測試不接受,隻能改,經過瞭各種嘗試與搜索最後終算是較完美的解決瞭。

去除python窗口

項目初始是通過C++的process去調起python然後執行腳本的,後來發現會彈出python窗口。

使用的命令為

python.exe ie.py

效果如下

在這裡插入圖片描述

打開瞭頁面但是同時會出現一個python窗口。

解決方案

改用pythonw.exe。

在python.exe文件的同級目錄下同樣存在一個名為pythonw.exe的可執行文件,它與pyhon.exe的區別是pythonw.exe是無窗口的python可執行程序,運行後將在後臺運行腳本,不會出現窗口,也不會有輸出。

去除driver窗口

改用瞭pythonw.exe窗口後發現python窗口是不彈瞭,但是運氣chrome與ie的時候,會彈出對應的driver窗口。

效果如下:

在這裡插入圖片描述

解決方案

通過搜索發現瞭已經有博主通過實現自己的類讓窗口不再彈出,借鑒他的思路,因為項目可以直接提供python環境,所以我選擇瞭直接修改源碼的代碼實現。

具體如下:

在這裡插入圖片描述

修改selenium/webdriver/common/service.py。

在這裡插入圖片描述

在service.py的60行開始添加幾行代碼,修改啟動參數

si = subprocess.STARTUPINFO()
si.dwFlags = subprocess.CREATE_NEW_CONSOLE | subprocess.STARTF_USESHOWWINDOW
si.wShowWindow = subprocess.SW_HIDE

這樣修改瞭之後再運行就不會有彈窗出現瞭

ps:https://www.jianshu.com/p/8e278a776475 實現類繼承的博主

到此這篇關於python selenium 運行時彈出窗口的文章就介紹到這瞭,更多相關python selenium 彈出窗口內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: