当前位置:   article > 正文

py selenium问题解决办法:DevTools listening on ws://127.0.0.1:52704/devtools/browser/

devtools listening on ws

最近用pyqt5写GUI程序,使用python的selenium库做自动化,发现封装成exe之后,只要驱动浏览器就会弹出一个黑框,然后打印出一行:

DevTools listening on ws://127.0.0.1:52704/devtools/browser/dd0465eb-0fbf-4e...

查了好多资料,有的博主说,直接添加一行这个代码就可以了。

chrome_options.add_experimental_option('excludeSwitches', ['enable-logging'])

先解读上面的代码 :

这里使用add_experimental_option方法添加了一个实验性选项。

具体来说,这个选项是用来排除某些Chrome内置的命令行标志(switches)。

在这个例子中,'enable-logging'被排除了,意味着Selenium将不会输出Chrome浏览器的大量日志信息到控制台,这在某些情况下可以减少输出的杂乱,使程序输出更易于阅读,尤其是在进行调试或运行自动化脚本时。

然而并没有什么卵用!重新封装还是会弹出黑框。

找啊找,终于找到一个博主提供的方法是可行的。

具体方法:

1、找到selenium库的service.py文件

路径根据自己的来!.../Lib/sit-packages/selenium/webdriver/common/service.py的源码

2、查找下面的代码

 self.creation_flags = self.popen_kw.pop("creation_flags", 0)

3、改成下面的代码

self.creation_flags = self.popen_kw.pop("creation_flags", 134217728)

creationflags改为一个神秘数字134217728(其实就是0x8000000)

4、保留自己代码中的 

chrome_options.add_experimental_option('excludeSwitches', ['enable-logging'])

然后执行封装成exe再试试,就发现没有这个弹窗了。 

5、代码再给全一点

  1. from selenium.webdriver import Chrome
  2. from selenium import webdriver
  3. chrome_options = webdriver.ChromeOptions()
  4. chrome_options.add_experimental_option('excludeSwitches', ['enable-logging'])
  5. # 生成随机端口号
  6. random_port = random.randint(1024, 49151)
  7. # 初始化 Chrome Service,并指定端口号
  8. chrome_service = Service('./... 改成自己的谷歌路径.../chrome.exe', port=random_port)
  9. driver = Chrome(service=chrome_service, options=chrome_options)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/846942
推荐阅读
相关标签
  

闽ICP备14008679号