尝试 运行 机器人框架测试用例针对 Windows 使用 Appium 服务器的应用程序 - 可能吗?

Trying to run a Robot Framework Test Case against a Windows app with Appium Server - possible?

我在 RIDEIDE 中使用 Robot Framework。我有一个 Appium 服务器会话 运行。作为第一次尝试,我想编写一个 Robot Framework 测试用例来打开 Windows 记事本的一个实例。首先,这是否可能,还是我被误导了?

Appium

以下是使用的设置:

远程主机:127.0.0.1

远程端口:4723

远程路径:/

SSL:禁用

“所需能力”设置如下 JSON:

{
    "app": "C:\Windows\system32\notepad.exe"
}

WinAppDriver

在端口 4723 上 运行。

RIDE IDE

正在执行以下测试用例:

*** Settings ***
Library           AppiumLibrary

*** Test Cases ***
TC0
    Open Application    http://localhost:4723/wd/hub    app=C:\Windows\System32\notepad.exe

这会产生以下错误:

[ WARN ] Keyword 'Capture Page Screenshot' could not be run on failure: No application is open

这可能是什么原因?

编辑:附加信息 - 执行上述测试用例时,WinAppDriver 控制台中出现以下内容:

默认情况下 AppiumLibrary 将 运行 Capture Page Screenshot 失败。
AppiumLibrary Documentation

最有可能的顺序如下。

  1. 测试用例尝试打开记事本但失败。
    Open Application http://localhost:4723/wd/hub app=C:\Windows\System32\notepad.exe

  2. 关于此失败 AppiumLibrary 尝试 Capture Page Screenshot 但由于第 1 步失败后没有打开的应用程序而失败。

我认为您需要重点解决应用无法正常打开的原因。

如果您想抑制此失败,您可以将 AppiumLibrary 设置为在使用 run_on_failure=No Operation 导入失败时不捕获屏幕,请参阅上面的链接文档。

Library AppiumLibrary run_on_failure=No Operation

稍微不相关,但我只是想提供一些使用 winappdriver 和 robotframework 的提示,因为那里没有很多简明的信息。

  1. 我个人发现 运行 通过 appium 的 winappdriver 比 运行 独立的 winappdriver 慢。
  2. localhost 也比使用 127.0.0.1 慢,因为您的系统每次都必须解析该地址:https://github.com/microsoft/WinAppDriver/issues/1269
  3. AppiumLibrary 仍然非常适合移动自动化,因此它缺少一些您在桌面自动化中想要的常用内容,例如 'drag and drop'、'mouse over element'、用于控制驱动程序的关键字 setup/teardown, 等等 RobotFramework-Zoomba's DesktopLibrary extends AppiumLibrary and adds a lot of these keywords if you would be willing to try that out. Keyword docs can be found here: https://accruent.github.io/robotframework-zoomba/DesktopLibraryDocumentation.html