近期在做一個網(wǎng)頁代填項目時,用到了python的selenium,雖然實現(xiàn)了代填功能但是每次運行時都會彈出窗口,初始是python窗口,后續(xù)改進了又彈出了driver的窗口。在我看來是無傷大雅的,不過測試不接受,只能改,經(jīng)過了各種嘗試與搜索最后終算是較完美的解決了。
去除python窗口
項目初始是通過C++的process去調(diào)起python然后執(zhí)行腳本的,后來發(fā)現(xiàn)會彈出python窗口。
使用的命令為
python.exe ie.py
效果如下
打開了頁面但是同時會出現(xiàn)一個python窗口。
解決方案
改用pythonw.exe。
在python.exe文件的同級目錄下同樣存在一個名為pythonw.exe的可執(zhí)行文件,它與pyhon.exe的區(qū)別是pythonw.exe是無窗口的python可執(zhí)行程序,運行后將在后臺運行腳本,不會出現(xiàn)窗口,也不會有輸出。
去除driver窗口
改用了pythonw.exe窗口后發(fā)現(xiàn)python窗口是不彈了,但是運氣chrome與ie的時候,會彈出對應(yīng)的driver窗口。
效果如下:
解決方案
通過搜索發(fā)現(xiàn)了已經(jīng)有博主通過實現(xiàn)自己的類讓窗口不再彈出,借鑒他的思路,因為項目可以直接提供python環(huán)境,所以我選擇了直接修改源碼的代碼實現(xiàn)。
具體如下:
修改selenium/webdriver/common/service.py。
在service.py的60行開始添加幾行代碼,修改啟動參數(shù)
si = subprocess.STARTUPINFO() si.dwFlags = subprocess.CREATE_NEW_CONSOLE | subprocess.STARTF_USESHOWWINDOW si.wShowWindow = subprocess.SW_HIDE
這樣修改了之后再運行就不會有彈窗出現(xiàn)了
ps:https://www.jianshu.com/p/8e278a776475 實現(xiàn)類繼承的博主
到此這篇關(guān)于python selenium 運行時彈出窗口的文章就介紹到這了,更多相關(guān)python selenium 彈出窗口內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://blog.csdn.net/wcyyyyyyy/article/details/121594669