我最近一直在尝试建立Selenium环境并重新运行。一切正常,脚本执行正常,使用其他Web驱动程序等。

但是,每个驱动程序的初始启动需要2-5分钟才能启动。这使我的脚本开发和故障排除变得很痛苦。

我将Python 3.6与PyCharm和Selenium一起使用pip安装。 Python 2.7存在相同的问题。

到目前为止我尝试过的事情(没有成功):


重新安装Python
重新安装硒
通过PyCharm并通过终端运行脚本
将Web驱动程序替换为早期和更高版本。
禁用了Web驱动程序的代理和JavaScript


这是我正在运行的。这个简单的脚本最多需要5分钟才能运行,但是可以正常运行,并且不返回任何警告或错误。

from selenium import webdriver
import time
print(time.localtime())
browser = webdriver.Firefox()
browser.get('http://seleniumhq.org/')
print(time.localtime())


编辑:
上面的代码一次运行即可产生以下geckodriver.log

1528112695159   geckodriver INFO    geckodriver 0.19.1
1528112695168   geckodriver INFO    Listening on 127.0.0.1:3148
1528112747876   mozrunner::runner   INFO    Running command: "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe" "-marionette" "-profile" "C:\\Users\\victorsk\\AppData\\Local\\Temp\\rust_mozprofile.ULuflXGoq9rE"
Unable to read VR Path Registry from C:\Users\victorsk\AppData\Local\openvr\openvrpaths.vrpath
Unable to read VR Path Registry from C:\Users\victorsk\AppData\Local\openvr\openvrpaths.vrpath
Unable to read VR Path Registry from C:\Users\victorsk\AppData\Local\openvr\openvrpaths.vrpath
Unable to read VR Path Registry from C:\Users\victorsk\AppData\Local\openvr\openvrpaths.vrpath
Unable to read VR Path Registry from C:\Users\victorsk\AppData\Local\openvr\openvrpaths.vrpath
1528112791808   Marionette  INFO    Listening on port 3158
1528112792599   Marionette  WARN    TLS certificate errors will be ignored for this session
[Parent 36664, Gecko_IOThread] WARNING: pipe error: 109: file z:/build/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 346
[Parent 36664, Gecko_IOThread] WARNING: pipe error: 109: file z:/build/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 346
[Child 22672, Chrome_ChildThread] WARNING: pipe error: 109: file z:/build/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 346
[Child 22672, Chrome_ChildThread] WARNING: pipe error: 109: file z:/build/build/sr[Parent 36664, Gecko_IOThread] WARNING: pipe error: 109: file z:/build/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 346
[Child 25068, Chrome_ChildThread] WARNING: pipe error: 109: file z:/build/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 346
[Child 25068, C*** UTM:SVC TimerManager:registerTimer called after profile-before-change notification. Ignoring timer registration for id: telemetry_modules_ping

最佳答案

这些错误消息...

Unable to read VR Path Registry from C:\Users\victorsk\AppData\Local\openvr\openvrpaths.vrpath
Unable to read VR Path Registry from C:\Users\victorsk\AppData\Local\openvr\openvrpaths.vrpath
Unable to read VR Path Registry from C:\Users\victorsk\AppData\Local\openvr\openvrpaths.vrpath
Unable to read VR Path Registry from C:\Users\victorsk\AppData\Local\openvr\openvrpaths.vrpath
Unable to read VR Path Registry from C:\Users\victorsk\AppData\Local\openvr\openvrpaths.vrpath


...意味着有几次尝试读取现有的VR Path Registry from C:\Users\victorsk\AppData\Local\openvr\openvrpaths.vrpath

您的主要问题是系统中是否存在杂务。


我们不知道您的Selenium Client版本。
您的GeckoDriver版本是v0.19.1。
我们不知道您的Firefox版本。




要加快操作,请按照下列步骤操作:


将硒升级到当前水平Version 3.12.0
将GeckoDriver升级到GeckoDriver v0.20.1级别。
确保指定位置中存在GeckoDriver二进制文件。
确保GeckoDriver对非root用户具有可执行权限。
将Firefox版本升级到Firefox v60.0.1级别。
通过IDE清理项目工作区,并仅使用必需的依赖项重建项目。
在执行测试套件之前和之后,使用CCleaner工具清除所有操作系统杂项。
如果您的基本Web客户端版本太旧,请通过Revo Uninstaller卸载它,并安装最新的GA和Web客户端发行版本。
进行系统重启。
以非root用户身份执行Test
始终在driver.quit()方法中调用tearDown(){}以正常关闭和销毁WebDriver和Web Client实例。



  注意:请勿禁用JavaScript。禁用JavaScript可能会导致网页加载不完整,因为所有Web设计人员/开发人员都认为JavaScript在每种浏览器中都可用,并且所有最近的浏览器功能和效果都是使用JavaScript实现的。

关于python - Selenium GeckoDriver启动Firefox浏览器的速度很慢,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50679623/

10-16 22:53