【问题标题】:UI tests for a wpf application are getting failed while running with WinAppDriver使用 WinAppDriver 运行 wpf 应用程序的 UI 测试失败
【发布时间】:2019-02-20 07:40:44
【问题描述】:

我使用Selenium.Appium.WindowsWPF(Windows 演示应用程序)创建了几个测试。我正在使用WinAppDriver 运行测试,但不幸的是,一些 UI 测试因以下错误而失败;任何指针将不胜感激。

消息:

System.InvalidOperationException : 无法定位元素 使用给定搜索参数的页面。

Result StackTrace:  
    at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
       at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
       at OpenQA.Selenium.Appium.AppiumDriver`1.Execute(String driverCommandToExecute, Dictionary`2 parameters)
       at OpenQA.Selenium.Remote.RemoteWebDriver.FindElement(String mechanism, String value)
       at OpenQA.Selenium.Appium.AppiumDriver`1.FindElement(String by, String value)
       at OpenQA.Selenium.Appium.AppiumDriver`1.FindElementByAccessibilityId(String selector)

启动服务器WinAppDriver服务器并运行

以下是我的环境详细信息:

WinAppDriver 1.1 version
Window 10 Pro, 32 GB RAM, i7-7500U Processor
NET Core 3.0 SDK

【问题讨论】:

    标签: appium-desktop winappdriver


    【解决方案1】:

    我们只能通过查看错误消息来解决问题。一般而言,在此站点上寻求帮助时,最好包含一个minimal complete verifiable example 的代码来重现问题。

    您的应用程序找不到任何具有您正在搜索的自动化 ID 的元素。诊断未能找到自动化 ID 的最佳方法是使用 inspect.exe 之类的工具检查您希望选择的元素,并查看其 AutomationId 的实际值是多少。

    您可能还想检查是否连接到正确的应用程序。即使 ID 存在,如果您在错误的地方寻找,您也不会找到它。

    在您的测试中逐步运行调试器以查看是否有更复杂的失败原因也很有帮助,例如当您搜索元素时未完全加载元素。

    【讨论】:

    • 点击该菜单项后,在该检查窗口中,自动化 ID 显示“”
    • 那么该元素没有设置自动化 ID。您必须使用其他定位器(如类、名称、ID 或 XPath)来定位元素。
    • 它有一个自动化 ID,但是每次将光标移到菜单上时,它会切换出现和消失
    • 也许您应该问另一个问题,具体是关于您在鼠标悬停时更改自动化 ID 时遇到的问题,以及如何使用 winappdriver 识别这些元素。请务必提供 MVCE,以便其他人能够轻松提供帮助。
    • @PixelPlex 我考虑过拆分我的答案,或者尝试鼓励 OP 通过 cmets 完善他们的答案。我认为让 OP 能够自行解决问题的答案是有价值的。把我的回答想象成“这里有 3 种解决您的问题的方法。其中一种可能适用于您的特定情况。”以及更多“这是您在使用 WinAppDriver 时解决 element_not_found 错误的方法。”
    猜你喜欢
    • 1970-01-01
    • 2013-04-25
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    • 2021-12-17
    • 2020-05-07
    • 1970-01-01
    • 2014-09-05
    相关资源
    最近更新 更多