近期在做一個網頁代填項目時,用到了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 彈出窗口內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/wcyyyyyyy/article/details/121594669