Python 测试电子应用程序:无法按照Robot框架的规定初始化测试
我正试图在Windows10机器上用RobotFramework测试打包的Electron应用程序(an.exe)。我还有其他RobotFramework测试,用于在同一台机器上运行良好的其他web应用程序 我的chromedriver与我的.robot脚本位于同一目录中,我认为它是正确的版本。我还尝试了不同版本的chromedriver.exe。目前我正在使用chromedriver 80.0.3987.16。我的应用程序的package.json表明electron版本是5.0.1 我已经创建了一个vars.py文件,并让robot脚本用中所示的代码实例化驱动程序 按照spage.fi链接的规定:在vars.py文件中:Python 测试电子应用程序:无法按照Robot框架的规定初始化测试,python,selenium,google-chrome,selenium-chromedriver,robotframework,Python,Selenium,Google Chrome,Selenium Chromedriver,Robotframework,我正试图在Windows10机器上用RobotFramework测试打包的Electron应用程序(an.exe)。我还有其他RobotFramework测试,用于在同一台机器上运行良好的其他web应用程序 我的chromedriver与我的.robot脚本位于同一目录中,我认为它是正确的版本。我还尝试了不同版本的chromedriver.exe。目前我正在使用chromedriver 80.0.3987.16。我的应用程序的package.json表明electron版本是5.0.1 我已经创
binary_location = {"chromeOptions": {"binary": "myelectronapp.exe"}}
请注意,为了删除任何路径依赖性,我将包进程中的.exe及其关联文件与robot脚本包含在同一目录中
我的机器人片段:
*** Settings ***
Documentation Suite description
Library SeleniumLibrary
Variables vars.py
*** Test Cases ***
Test title
[Tags] DEBUG
Log To Console calling create driver
Create Webdriver Remote desired_capabilities=${binary_location} command_executor=http://localhost:9515
我的端口9515通过入站规则打开
我的经验是,无论我认为符合的chromedriver版本是什么,我总是会遇到连接拒绝错误:
[ WARN ] Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x0000000003E3C160>: Failed to establish a new connection: [WinE
rror 10061] No connection could be made because the target machine actively refused it')': /session
[WARN]在连接被“NewConnectionError”(”)中断后重试(重试(总计=2,连接=None,读取=None,重定向=None,状态=None)):未能建立新连接:[WinE]
错误10061]无法建立连接,因为目标计算机主动拒绝了它。):/session
x 3次重试
我认为这不是一个端口可访问性问题,因为当我从命令行运行chromedriver,然后在端口9515调用url时,我会得到预期的回调跟踪
很难知道这是由于语法问题还是我忽略的其他连接属性造成的。此错误消息
[ WARN ] Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x0000000003E3C160>: Failed to establish a new connection: [WinError 10061] No connection could be made because the target machine actively refused it')': /session
[WARN]在连接被“NewConnectionError(”:未能建立新连接:[WinError 10061]无法建立连接,因为目标计算机主动拒绝了它。)”中断后重试(重试(重试(总计=2,连接=None,读取=None,重定向=None,状态=None)):/session
…意味着ChromeDriver无法启动/生成新的浏览上下文,即Chrome浏览器会话
您的主要问题是所使用的二进制文件版本之间的不兼容,如下所示:
- 您使用的是chromedriver=80.0.3987.16
- 的发行说明明确提到以下内容:
- 假设您使用的是chrome=79.0
- 的发行说明明确提到以下内容:
解决方案 确保:
- 硒被提升到当前水平
- ChromeDriver被降级到级别
- Chrome更新到当前的Chrome 79.0版本。(根据)
- 通过IDE清理项目工作区,并仅使用所需的依赖项重建项目
- 如果您的基本Web客户端版本太旧,请卸载它并安装最新的GA和发布的Web客户端版本
- 重新启动系统
- 以非root用户身份执行
@Test
- 始终在
方法中调用tearDown(){}
,以优雅地关闭和销毁Web驱动程序和Web客户端实例driver.quit()
[ WARN ] Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x0000000003E3C160>: Failed to establish a new connection: [WinError 10061] No connection could be made because the target machine actively refused it')': /session
[WARN]在连接被“NewConnectionError(”:未能建立新连接:[WinError 10061]无法建立连接,因为目标计算机主动拒绝了它。)”中断后重试(重试(重试(总计=2,连接=None,读取=None,重定向=None,状态=None)):/session
…意味着ChromeDriver无法启动/生成新的浏览上下文,即Chrome浏览器会话
您的主要问题是所使用的二进制文件版本之间的不兼容,如下所示:
- 您使用的是chromedriver=80.0.3987.16
- 的发行说明明确提到以下内容:
- 假设您使用的是chrome=79.0
- 的发行说明明确提到以下内容:
解决方案 确保:
- 硒被提升到当前水平
- ChromeDriver被降级到级别
- Chrome更新到当前的Chrome 79.0版本。(根据)
- 通过IDE清理项目工作区,并仅使用所需的依赖项重建项目
- 如果您的基本Web客户端版本太旧,请卸载它并安装最新的GA和发布的Web客户端版本
- 重新启动系统
- 以非root用户身份执行
@Test
- 始终在
方法中调用tearDown(){}
,以优雅地关闭和销毁Web驱动程序和Web客户端实例driver.quit()