我正在尝试通过 UIAutomation
为我们的项目实现自动化测试。但许多控件不是标准的,并且也没有为这些控件实现适当的模式。在这种情况下,我应该如何通过UIAutomation框架来操作控件?
例如,我们产品中的按钮是通过 Pane 实现的,并且调用的模式也没有实现。我应该如何点击该按钮? (为了避免在测试机上安装VS,我不想在Microsoft.VisiualStudio.TestTools.UITesting
命名空间中使用Mouse.Click()
)有没有办法仅使用 UIAutomation 框架或 .net 框架中嵌入的其他东西来做到这一点?提前致谢! (如果实现了正确的模式,下面的代码将起作用。作为新用户,我无法发布屏幕截图供您引用,抱歉!)
object temp = null;
if (btnTest.TryGetCurrentPattern(InvokePattern.Pattern, out temp))
{
InvokePattern btnTestPattern = temp as InvokePattern;
btnTestPattern.Invoke();
}
最佳答案
未实现控制模式时交互的唯一方法是点击周围的东西。 我建议尝试以下操作以避免最大错误。
- 发送点击之前,请确保按钮的父级( Pane 或窗口设置为前台)
- 不要将点击发送到 AutomationElement 的一角,而是尝试将其发送到元素的中点,
- 另外,尝试先将鼠标悬停在元素上,等待 200 毫秒左右,然后发送点击,这样您就一定会看到执行。[相信我,这有助于调试并避免许多问题。]
关于c# - 如何在没有实现任何模式的情况下操纵控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14230985/