Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 测试电子应用程序:无法按照Robot框架的规定初始化测试_Python_Selenium_Google Chrome_Selenium Chromedriver_Robotframework - Fatal编程技术网

Python 测试电子应用程序:无法按照Robot框架的规定初始化测试

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 我已经创

我正试图在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文件中:

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 80版

  • 假设您使用的是chrome=79.0
  • 的发行说明明确提到以下内容:
支持Chrome 79

因此,ChromeDriver v80.0和Chrome浏览器v79.0之间存在明显的不匹配


解决方案 确保:

  • 硒被提升到当前水平
  • ChromeDriver被降级到级别
  • Chrome更新到当前的Chrome 79.0版本。(根据)
  • 通过IDE清理项目工作区,并仅使用所需的依赖项重建项目
  • 如果您的基本Web客户端版本太旧,请卸载它并安装最新的GA和发布的Web客户端版本
  • 重新启动系统
  • 以非root用户身份执行
    @Test
  • 始终在
    tearDown(){}
    方法中调用
    driver.quit()
    ,以优雅地关闭和销毁Web驱动程序和Web客户端实例
此错误消息

[ 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 80版

  • 假设您使用的是chrome=79.0
  • 的发行说明明确提到以下内容:
支持Chrome 79

因此,ChromeDriver v80.0和Chrome浏览器v79.0之间存在明显的不匹配


解决方案 确保:

  • 硒被提升到当前水平
  • ChromeDriver被降级到级别
  • Chrome更新到当前的Chrome 79.0版本。(根据)
  • 通过IDE清理项目工作区,并仅使用所需的依赖项重建项目
  • 如果您的基本Web客户端版本太旧,请卸载它并安装最新的GA和发布的Web客户端版本
  • 重新启动系统
  • 以非root用户身份执行
    @Test
  • 始终在
    tearDown(){}
    方法中调用
    driver.quit()
    ,以优雅地关闭和销毁Web驱动程序和Web客户端实例