【问题标题】:Using UI Automation to click a button in an application使用 UI 自动化单击应用程序中的按钮
【发布时间】:2016-04-23 09:43:40
【问题描述】:

我正在尝试使用 UI 自动化单击第 3 方应用程序中的一个简单按钮。 我已经初始化了 IUIAutomation 对象,并通过使用 ElementFromHandle() 函数和第 3 方应用程序窗口的句柄检索了 IUIAutomationElement。

但我真的不知道如何使用这个 IUIAutomationElement 来找到按钮并发出左键单击它..

这是我目前的代码:

void Control::clickButton()
{
    for (std::list<Window>::iterator i = mainDetector.getWindowList().begin(); i != mainDetector.getWindowList().end(); ++i)
{
    if (i->getTitle().find("PokerStars Lobby") != std::string::npos)
    {
        parentWindowHandle = (HWND)i->getHandle();
    }
}

InitializeUIAutomation(iUiAutomation);
(*iUiAutomation)->ElementFromHandle(parentWindowHandle, iUiAutomationElement);

}

希望有人可以帮助我如何从这里继续实际点击按钮

【问题讨论】:

标签: c++ windows user-interface button ui-automation


【解决方案1】:

您可能会发现使用TestStack.White(也可从 NuGet 获得)来执行此类操作更简单。它封装了很多 UIAutomation,以便更轻松地编写驱动 Windows 应用程序的测试。

要查找目标按钮,您可以使用 Windows 10 SDK 中的“UIVerify”或“inspect”,让您可以查看桌面上所有窗口的 UI 自动化树。找到感兴趣的按钮后,您可以记下它的 AutomationId 或其他属性,以用作TestStack.White 的搜索命令之一或IUIAutomationTreeWalker 实例的搜索参数。

【讨论】:

猜你喜欢
  • 2012-06-28
  • 2014-04-28
  • 1970-01-01
  • 1970-01-01
  • 2019-01-31
  • 1970-01-01
  • 2018-06-30
  • 1970-01-01
  • 2017-04-28
相关资源
最近更新 更多