我必须在Linux网络服务器上构建一个Web应用程序,该应用程序将使用Selenium和Firefox。当我运行应用程序时,linux服务器"localhost:5000"它工作得很好。但是当我尝试使用"127.0.0.1:80"时,它在网络驱动程序加载过程中没有给我错误:
driver = webdriver.Firefox(executable_path='/usr/local/bin/geckodriver')
错误:
"Message: Unable to find a matching set of capabilities"
在nginx访问中.log它正在生成一个http 200,没有任何错误.log 在Geckodriver中.log它产生:
Listening on port 41209
环境详情:
- 硒 = 3.8.0
- 壁虎驱动程序 = 0.18.0
- 火狐版本 53
- 蟒蛇 = 3.6
nginx imageApp.conf
server {
listen 80;
server_name 127.0.0.1;
location / {
include proxy_params;
proxy_pass http://unix:/home/administator/imageDetectionApplication/imageDetectionApplication.sock;
}
}
图像检测应用.服务
我是Linux服务器的新手...!!
此错误消息...
Message: Unable to find a matching set of capabilities
。意味着壁虎驱动程序无法启动/生成新的浏览上下文,即Firefox 浏览器会话。
您的主要问题是您使用的二进制文件版本之间的不兼容,如下所示:
- 您的Selenium客户端版本是3.8.0,几乎早了2.5年。
- 我们不知道您的JDK 版本。
- 您的壁虎驱动程序版本是0.18.0,这是较旧的。
- 您的Firefox版本是53,这也相当旧。
所以Selenium客户端v3.8.0,壁虎驱动程序v0.18.0和Firefox浏览器v53之间存在明显的不匹配
溶液
确保:
- JDK已升级到当前级别 JDK 8u251。
- 硒已升级到当前级别 版本 3.141.59。
- GeckoDriver升级到 GeckoDriver v0.26.0 级别。 Firefox
- 已升级到当前的Firefox v72.0级别。
- 壁虎驱动程序存在于所需位置。
- GeckoDriver 具有非 root 用户的可执行权限。
- 通过IDE清理项目工作中心,并仅使用所需的依赖项重新生成项目。
- 如果基本 Web 客户端版本太旧,请卸载它,安装最新的 GA 和已发布版本的Web 客户端。
- 重新启动系统。
- 以非 root 用户身份执行
Test
。 - 始终在方法中调用
driver.quit()
tearDown(){}
以正常关闭和销毁WebDriver和Web 客户端实例。
引用
您可以在以下位置找到一些相关的讨论:
- Selenium"无法找到匹配的功能集",尽管驱动程序位于/usr/local/bin中
- selenium.common.exceptions.SessionNotCreatedException: 消息:无法找到与 Firefox 46 到 Selenium 匹配的功能集
- Selenium WebDriver,Firefox,Centos,找不到匹配的功能集
- 无法找到与硒 3.4.3、Firefox 54.0 和壁虎驱动程序 0.17 匹配的功能集
- selenium.common.exceptions.SessionNotCreatedException: 消息:找不到与 GeckoDriver、Selenium 和 Firefox 匹配的功能集