【问题标题】:Windows application automation using QAF使用 QAF 的 Windows 应用程序自动化
【发布时间】:2021-10-30 15:50:07
【问题描述】:

我正在寻找对使用 Qmetry 自动化框架和 BDD 步骤的自动化 Windows 应用程序(如记事本)的支持。是否有任何链接或解决方案可以实施。我尝试使用 Appium 驱动程序,但没有成功。

Step1:打开记事本 Step2:输入“一些文字”[在此处输入链接描述][1]

成功日志: Windows 应用程序驱动程序监听请求:http://127.0.0.1:4723/ 按 ENTER 退出。

=========================================== 发布/会话 HTTP/1.1 接受编码:gzip,deflate 连接:保持活动 内容长度:258 内容类型:应用程序/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 内容类型:应用程序/json;字符集=utf-8 主机:127.0.0.1:4723 用户代理:selenium/3.141.59 (java windows) X-幂等密钥:202d0858-641b-4263-88b9-4b5b1ed0ecc1

【问题讨论】:

    标签: selenium automated-tests qaf


    【解决方案1】:

    您没有提供您尝试过的内容以及遇到的错误。

    为了自动化 windows 原生应用程序,您需要使用 appium windows 驱动程序。 Windows 驱动是 appium 实现,所以你可以像 android 或 ios appium 驱动一样使用它。

    可以参考

    编辑:下面的示例工作正常:

    属性setting capabilities

    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");
        }
    

    【讨论】:

    • 我正在尝试自动化 Windows 应用程序,如记事本、在 QAF 中使用 WinAppDriver 的计算器和 java bdd 方法。我的属性文件包含以下属性。 remote.server=127.0.0.1 remote.port=4723 driver.name=appiumDriver appium.additional.capabilities={'platformName':'Windows','deviceName':'WindowsPC','automationName':'Appium','app ':'C:\Windows\System32\notepad.exe','driverClass':'io.appium.java_client.windows.WindowsDriver'
    • 从上面的评论继续。问题:默认情况下记事本未初始化。如果我运行低于方法,那么它按预期工作。 DesiredCapabilities 能力1 = new DesiredCapabilities(); capabilities1.setCapability("app", "C:\\Windows\\System32\\notepad.exe"); NotepadSession = new WindowsDriver(new URL("127.0.0.1:4723"), capabilities1); NotepadSession.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS); Assert.assertEquals("Untitled - Notepad", NotepadSession.getTitle( )); NotepadSession.findElementByClassName("Edit").sendKeys("Some text");
    • 最简单的方法是将打印功能传递给WindowsDriver 并与您在属性中设置的内容相匹配。如果您参考github.com/appium/appium-windows-driver,您将了解支持的功能和可能的价值。试试appium.additional.capabilities={'app':'C:\Windows\System32\notepad.exe','driverClass':'io.appium.java_client.windows.WindowsDriver'}。如果需要,您可以尝试添加 'platformName':'Windows' 和 'automationName': 'windows'
    • 此外,在提供路径时,请使用 / 或 \\ 而不是 \ 例如,C:\\Windows\\System32\\notepad.exeC:/Windows/System32/notepad.exe
    • 感谢您的回复!
    猜你喜欢
    • 2021-04-24
    • 1970-01-01
    • 1970-01-01
    • 2019-01-01
    • 2018-02-16
    • 2018-06-13
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    相关资源
    最近更新 更多