selenium+python 去除啟動(dòng)的黑色cmd窗口方法
其實(shí) selenium啟動(dòng)窗口的時(shí)候就是 使用了subprocess.Popen 啟動(dòng)的驅(qū)動(dòng)程序的,只要在啟動(dòng)的時(shí)候加上啟動(dòng)不顯示窗口的參數(shù)即可。
下面魔改開始O(∩_∩)O哈哈~
修改代碼 位于 D:\Python35\Lib\site-packages\selenium\webdriver\common\service.py 主要是 Service類的start函數(shù)
def start(self): """ Starts the Service. :Exceptions: - WebDriverException : Raised either when it can't start the service or when it can't connect to the service """ try: cmd = [self.path] cmd.extend(self.command_line_args()) if 'win32' in str(sys.platform).lower(): ### 這里判斷是否是windows平臺(tái) ### 在windows平臺(tái)上就隱藏窗口 startupinfo = subprocess.STARTUPINFO() startupinfo.dwFlags = subprocess.CREATE_NEW_CONSOLE | subprocess.STARTF_USESHOWWINDOW startupinfo.wShowWindow = subprocess.SW_HIDE else: startupinfo = None self.process = subprocess.Popen(cmd, env=self.env, close_fds=platform.system() != 'Windows', stdout=self.log_file, stderr=self.log_file,startupinfo=startupinfo) ### 啟動(dòng)驅(qū)動(dòng) self.PID = self.process.pid ### 將cmd窗口的進(jìn)程pid 保留 因?yàn)?窗口被隱藏了 所以在后續(xù)程序中必須考慮主控進(jìn)程結(jié)束的時(shí)候必須結(jié)束掉 驅(qū)動(dòng)cmd窗口進(jìn)程 except TypeError: raise except OSError as err: if err.errno == errno.ENOENT: raise WebDriverException( "'%s' executable needs to be in PATH. %s" % ( os.path.basename(self.path), self.start_error_message) ) elif err.errno == errno.EACCES: raise WebDriverException( "'%s' executable may have wrong permissions. %s" % ( os.path.basename(self.path), self.start_error_message) ) else: raise except Exception as e: raise WebDriverException( "The executable %s needs to be available in the path. %s\n%s" % (os.path.basename(self.path), self.start_error_message, str(e))) count = 0 while True: self.assert_process_still_running() if self.is_connectable(): break count += 1 time.sleep(1) if count == 30: raise WebDriverException("Can not connect to the Service %s" % self.path)
注意 在前面先導(dǎo)入 sys包
因?yàn)殡[藏了驅(qū)動(dòng)cmd窗口 所以 結(jié)束程序的時(shí)候 一定要做殺死驅(qū)動(dòng)cmd窗口的動(dòng)作哦 !O(∩_∩)O!!
以上這篇selenium+python 去除啟動(dòng)的黑色cmd窗口方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于Flask+websocket實(shí)現(xiàn)一個(gè)在線聊天室
在今天的互聯(lián)網(wǎng)時(shí)代,實(shí)時(shí)通信成為了許多應(yīng)用和服務(wù)的核心特色,在本文中,我們將介紹如何使用 Flask 和 Websockets 通過 Flask-SocketIO 框架創(chuàng)建一個(gè)簡(jiǎn)單的在線聊天室,感興趣的可以跟隨小編一起了解下2023-09-09基于Python+Pygame實(shí)現(xiàn)變異狗大戰(zhàn)游戲
只有你想不到,沒有我找不到寫不了的好游戲!這篇文章就來和大家分享一下如何基于Python+Pygame實(shí)現(xiàn)變異狗大戰(zhàn)游戲,感興趣的可以了解一下2023-03-03加速Python代碼執(zhí)行利器使用實(shí)例探究
這篇文章主要為大家介紹了加速Python代碼執(zhí)行的利器使用實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01基于PyQt5實(shí)現(xiàn)SqlServer數(shù)據(jù)庫表導(dǎo)出Excel表格小工具
這篇文章主要為大家詳細(xì)介紹了PyQt5的應(yīng)用案例之實(shí)現(xiàn)SqlServer數(shù)據(jù)庫表導(dǎo)出Excel表格小工具,文中的示例代碼講解詳細(xì),需要的小伙伴可以參考一下2023-12-12Pytorch 實(shí)現(xiàn)自定義參數(shù)層的例子
今天小編就為大家發(fā)信息一篇Pytorch 實(shí)現(xiàn)自定義參數(shù)層的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08Python3實(shí)戰(zhàn)之爬蟲抓取網(wǎng)易云音樂的熱門評(píng)論
這篇文章主要給大家介紹了關(guān)于Python3實(shí)戰(zhàn)之爬蟲抓取網(wǎng)易云音樂熱評(píng)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10