Windows 使用 QAF 的应用程序自动化
Windows application automation using QAF
我正在寻找对使用带有 BDD 步骤的 Qmetry 自动化框架的记事本等自动化 windows 应用程序的支持。是否有任何 link 或解决方案可以实施。我尝试使用 Appium 驱动程序但没有成功。
第一步:打开记事本
第 2 步:输入“一些文字”[在此处输入 link 描述][1]
成功记录:
Windows 应用程序驱动程序在以下位置侦听请求:http://127.0.0.1:4723/
按 ENTER 退出。
==========================================
POST /session HTTP/1.1
接受编码:gzip、deflate
连接:保持活动
内容长度:258
内容类型:application/json;字符集=utf-8
主机:127.0.0.1:4723
用户代理:Apache-HttpClient/4.5.2 (Java/16.0.2)
{"capabilities":[{"desiredCapabilities":{"app":"C:\Windows\System32\notepad.exe","platformName":"Windows"}},{"requiredCapabilities ":{}}],"desiredCapabilities":{"app":"C:\Windows\System32\notepad.exe","platformName":"Windows"},"requiredCapabilities":{}}
HTTP/1.1 200 好
内容长度:141
内容类型:application/json
==========================================
获取 /session/3E4610D7-9EBB-4998-921B-94220578D3F1 HTTP/1.1
接受编码:gzip、deflate
缓存控制:无缓存
连接:保持活动
主机:127.0.0.1:4723
用户代理:Apache-HttpClient/4.5.2 (Java/16.0.2)
HTTP/1.1 200 好
内容长度:90
内容类型:application/json
{"status":0,"value":{"app":"C:\Windows\System32\notepad.exe","platformName":"Windows"}}
失败记录:
Windows 应用程序驱动程序侦听请求:http://127.0.0.1:4723/
按 ENTER 退出。
==========================================
POST /wd/hub/session HTTP/1.1
接受编码:gzip
连接:保持活动
内容长度:641
内容类型:application/json;字符集=utf-8
主机:127.0.0.1:4723
用户代理:selenium/3.141.59 (java windows)
X-幂等键:202d0858-641b-4263-88b9-4b5b1ed0ecc1
您没有提供您尝试过的内容以及您遇到的错误是什么。
为了自动化 windows 本机应用程序,您需要使用 appium windows 驱动程序。 Windows 驱动程序是 appium 实现,因此您可以像 android 或 ios appium 驱动程序一样使用它。
可以参考
- How to run native app on appium
- 特定于驱动程序的设置 documentation 和其他特定于驱动程序的要求
- 工作示例 configuration。
编辑:下面的示例工作正常:
remote.port=4723
driver.name= appiumDriver
appium.additional.capabilities={"app":"C:\Windows\System32\notepad.exe","driverClass":"io.appium.java_client.windows.WindowsDriver"}
#appium.capabilities.driverClass=io.appium.java_client.windows.WindowsDriver
#appium.capabilities.app=C:\Windows\System32\notepad.exe
它与正常的 Web 驱动程序测试一样运行良好,没有问题:
import static com.qmetry.qaf.automation.step.CommonStep.sendKeys;
import static com.qmetry.qaf.automation.util.StringMatcher.exact;
import static com.qmetry.qaf.automation.ui.webdriver.ElementFactory.$;
...
@Test
public void testCanEditInNotpad(){
getDriver().verifyTitle(exact("Untitled - Notepad"));
getDriver().findElementByClassName("Edit").sendKeys("it worked!...")
$("className=Edit").sendKeys(" This also worked!...");
sendKeys(" Common Step worked as well!...", "className=Edit");
}
我正在寻找对使用带有 BDD 步骤的 Qmetry 自动化框架的记事本等自动化 windows 应用程序的支持。是否有任何 link 或解决方案可以实施。我尝试使用 Appium 驱动程序但没有成功。
第一步:打开记事本 第 2 步:输入“一些文字”[在此处输入 link 描述][1]
成功记录: Windows 应用程序驱动程序在以下位置侦听请求:http://127.0.0.1:4723/ 按 ENTER 退出。
========================================== POST /session HTTP/1.1 接受编码:gzip、deflate 连接:保持活动 内容长度:258 内容类型:application/json;字符集=utf-8 主机:127.0.0.1:4723 用户代理:Apache-HttpClient/4.5.2 (Java/16.0.2)
{"capabilities":[{"desiredCapabilities":{"app":"C:\Windows\System32\notepad.exe","platformName":"Windows"}},{"requiredCapabilities ":{}}],"desiredCapabilities":{"app":"C:\Windows\System32\notepad.exe","platformName":"Windows"},"requiredCapabilities":{}} HTTP/1.1 200 好 内容长度:141 内容类型:application/json
========================================== 获取 /session/3E4610D7-9EBB-4998-921B-94220578D3F1 HTTP/1.1 接受编码:gzip、deflate 缓存控制:无缓存 连接:保持活动 主机:127.0.0.1:4723 用户代理:Apache-HttpClient/4.5.2 (Java/16.0.2)
HTTP/1.1 200 好 内容长度:90 内容类型:application/json
{"status":0,"value":{"app":"C:\Windows\System32\notepad.exe","platformName":"Windows"}}
失败记录:
Windows 应用程序驱动程序侦听请求:http://127.0.0.1:4723/ 按 ENTER 退出。
========================================== POST /wd/hub/session HTTP/1.1 接受编码:gzip 连接:保持活动 内容长度:641 内容类型:application/json;字符集=utf-8 主机:127.0.0.1:4723 用户代理:selenium/3.141.59 (java windows) X-幂等键:202d0858-641b-4263-88b9-4b5b1ed0ecc1
您没有提供您尝试过的内容以及您遇到的错误是什么。
为了自动化 windows 本机应用程序,您需要使用 appium windows 驱动程序。 Windows 驱动程序是 appium 实现,因此您可以像 android 或 ios appium 驱动程序一样使用它。
可以参考
- How to run native app on appium
- 特定于驱动程序的设置 documentation 和其他特定于驱动程序的要求
- 工作示例 configuration。
编辑:下面的示例工作正常:
remote.port=4723
driver.name= appiumDriver
appium.additional.capabilities={"app":"C:\Windows\System32\notepad.exe","driverClass":"io.appium.java_client.windows.WindowsDriver"}
#appium.capabilities.driverClass=io.appium.java_client.windows.WindowsDriver
#appium.capabilities.app=C:\Windows\System32\notepad.exe
它与正常的 Web 驱动程序测试一样运行良好,没有问题:
import static com.qmetry.qaf.automation.step.CommonStep.sendKeys;
import static com.qmetry.qaf.automation.util.StringMatcher.exact;
import static com.qmetry.qaf.automation.ui.webdriver.ElementFactory.$;
...
@Test
public void testCanEditInNotpad(){
getDriver().verifyTitle(exact("Untitled - Notepad"));
getDriver().findElementByClassName("Edit").sendKeys("it worked!...")
$("className=Edit").sendKeys(" This also worked!...");
sendKeys(" Common Step worked as well!...", "className=Edit");
}