做网站开发电脑配置,黄冈建设网站,自己建立公司网站,做网站公司怎么赚钱笔者这两天在做一个自动化方案#xff0c;用来优化数据统计。其中一部分数据需要通过云上堡垒机跳转访问#xff0c;而这个堡垒机在笔者日常使用的火狐浏览器上运行不是很正常#xff08;表现在有些复制粘贴按钮显示不太灵敏#xff09;。
但在Edge浏览器上基本正常#…笔者这两天在做一个自动化方案用来优化数据统计。其中一部分数据需要通过云上堡垒机跳转访问而这个堡垒机在笔者日常使用的火狐浏览器上运行不是很正常表现在有些复制粘贴按钮显示不太灵敏。
但在Edge浏览器上基本正常因此笔者自动化也准备通过Selenium访问Edge浏览器来实现。
然而问题来了笔者在进行Selenium打开Edge浏览器测试时发现网页刚被打开后就闪退了而终端窗口还会提示
“DevTools listening on ws://127.0.0.1:59791/devtools/browser/78d01a4b-6a19-40ba-8736-b1bca66d5952 [27628:15544:0914/095450.252:ERROR:edge_qqbrowser_importer_utils_win.cc(155)] QQBrowser user data path not found.”
的错误如下图 笔者一度以为这是的的确确的闪退因为既有报错信息又有闪退行为。
然后一番试验、上网查询、研究快两天过后今天终于在恍然间将这个问题算是彻底征服。
节省读者时间先放解决措施
这个“闪退”是正常的而且实质上并非真的闪退而是Selenium Webdriver的正常行为。
接下来做一个简明的解释相信遇到过同样疑问的朋友很快就会明白了
1、Selenium Webdriver对于不同浏览器的行为会有些许差异。而打开网址后的默认行为就是差异之一。
例如使用下面这段大家基本都会默认使用的调用代码
from selenium import webdriver#driver webdriver.Edge()
#driver webdriver.Chrome()
driver webdriver.Firefox()
driver.get(https://www.baidu.com)经笔者测试Firefox会停留在当前页面默认不会自动关闭浏览器而Chrome和Edge均会自动关闭浏览器。
就是这个小小的差异而对于笔者这个日常将火狐浏览器作为默认浏览器并只在火狐浏览器做了大量自动化工作的人来说对于浏览器的默认行为潜移默化认可了误以为Chrome和Edge的自动关闭是“闪退”。。。
因此如果非要Chrome和Edge不自动关闭加个延时等待就可以了。
例如
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
import timechrome_options Options()
chrome_options.add_argument(--incognito) # 添加无痕模式的参数executable_pathC:\chromedriver-win64,
driver webdriver.Chrome( optionschrome_options)
driver.get(https://www.baidu.com)time.sleep(60)#driver webdriver.Edge()
#driver.get(https://www.baidu.com)2、“DevTools listening on ws://127.0.0.1:59791/devtools/browser/”也的确不算是错误信息笔者认为更准确是告警提示这个用搜索的智能回答来解释吧笔者认为回答得挺好回答如下图 至此疑惑及问题彻底解决笔者内心总算舒坦了
恍然醒悟之前其实笔者也去核对了浏览器版本、也去Chrome和Edge开发者官网下载了对应版本的msedgedriver.exe和chromedriver.exe并将其保存路径加入了系统Path环境变量。同时也检查了Python版本、Selenium版本。这些工作对于因为版本不一致可能引起的真“闪退”应该也是有效果的。
到此完毕希望帮助到遇到同样问题或疑惑的朋友们