测试电子应用:无法按照机器人框架的规定初始化测试



我正在尝试在Windows 10机器上使用RobotFramework测试打包的Electron应用程序(.exe(。 我还有其他针对在同一台机器上运行良好的其他 Web 应用程序的 RobotFramework 测试。

我有我认为是正确版本的chromedriver,与我的.robot脚本位于同一目录中。 我也尝试了不同版本的chromedriver.exe。 目前我正在使用chromedriver 80.0.3987.16 我的应用程序的package.json表明电子版本是5.0.1

我创建了一个 vars.py 文件,并让机器人脚本使用 https://spage.fi/electron 中指示的代码实例化驱动程序

按照 spage.fi 链接的规定:在 vars.py 文件中:

binary_location = {"chromeOptions": {"binary": "myelectronapp.exe"}}   

请注意,我已将打包进程中的.exe及其关联文件包含在与机器人脚本相同的目录中,以便删除任何路径依赖项。

我的机器人片段:

*** 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

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

。暗示ChromeDriver无法启动/生成新的浏览上下文,即Chrome浏览器会话。


您的主要问题是您使用的二进制文件版本之间的不兼容,如下所示:

  • 您正在使用的 chromedriver =80.0.3987.16
  • chromedriver=80.0.3987.16的发行说明明确提到了以下内容:

支持铬版本 80

  • 大概您正在使用chrome= 79.0
  • ChromeDriver v79.0.3945.36的发行说明明确提到了以下内容:

支持Chrome 79

所以ChromeDriver v80.0Chrome浏览器v79.0之间存在明显的不匹配


溶液

确保:

  • 已升级到当前级别 版本 3.141.59。
  • ChromeDriver 降级到 ChromeDriverv79.0 级别。
  • Chrome
  • 已更新到当前的Chrome 版本 79.0级别。(根据 ChromeDriver v79.0 发行说明(
  • 通过IDE清理项目工作中心,并仅使用所需的依赖项重新生成项目。
  • 如果基本Web客户端版本太旧,请将其卸载并安装最新的Web 客户端正式发布版本。
  • 重新启动系统
  • 非 root用户身份执行@Test
  • 始终在方法中调用driver.quit()tearDown(){}以正常关闭和销毁WebDriverWeb 客户端实例。

相关内容

  • 没有找到相关文章

最新更新