我尝试使用UI Automation点击第三方应用程序中的简单按钮。 我初始化了IUIAutomation对象,并使用带有第三方应用程序窗口句柄的ElementFromHandle()函数检索了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);
}
希望有人可以帮助我从这里继续实际点击按钮
答案 0 :(得分:-1)
你可能会发现使用TestStack.White(也可以从NuGet获得)来做这种事情更简单。它包含了很多UIAutomation,可以更轻松地编写驱动Windows应用程序的测试。
要查找目标按钮,您可以使用Windows 10 SDK中的“UIVerify”或“inspect”,以便查看桌面上所有窗口的UI自动化树。找到感兴趣的按钮后,您可以记下其AutomationId或其他属性,以用作TestStack.White
的搜索命令或IUIAutomationTreeWalker
实例之一的搜索参数。