如何在不实现任何模式的情况下操作控件?我正在尝试通过UIAutomation为我们的项目实施自动化测试。但是很多控件不是标准的,并且没有为这些控件实现正确的架构。在这种情况下,我应该如何通过UIAutomation框架来操作控件呢?比如我们产品中的按钮是通过panes实现的,调用的modal也没有实现。我应该如何点击按钮?(为了避免在测试机上安装VS,我不想在Microsoft.VisiualStudio.TestTools.UITesting命名空间中使用Mouse.Click())有没有办法只使用UIAutomation框架或嵌入在.网络框架?提前致谢!(如果实现了正确的模式,下面的代码将起作用。作为新用户,我无法发布屏幕截图供您参考,抱歉!)objecttemp=null;if(btnTest.TryGetCurrentPattern(InvokePattern.Pattern,outtemp)){InvokePatternbtnTestPattern=tempasInvokePattern;btnTestPattern.Invoke();当控制模式未实现时,唯一的交互方式是点击周围的东西。我建议尝试遵循以避免最大错误。在发送点击之前,确保按钮的父级(窗格或窗口设置为前景)而不是将点击发送到AutomationElement的角落,尝试在元素的中点发送它,另外,尝试先将鼠标悬停在元素上,在发送点击之前等待200毫秒,以确保您会看到执行。[相信我,这对调试有很大帮助,避免了很多问题。]最好的是,如果实施该系统的人将在其UI元素中实施服务器端UIA提供程序!但通常这是不可能的......,我使用了以下解决方法(至少对于点击/切换):如果您收到可点击的点,BoundingRectangleProperty也可以提供帮助,您可以使用System.Windows.Forms.Cursor.Position=newSystem.Drawing.Point((int)clickablePoint.X,(int)clickablePoint.Y);移至该位置并通过InputSimulator或某些win32(user32.dll)命令单击它。(注意:当然你也可以使用InputSimulator或win32来移动鼠标——但是当涉及到具有不同位置或分辨率的多个屏幕时,我对InputSimulator有一些问题——所以Cursor.Position是最简单的方法,这也非常可靠)以上就是C#学习教程:如何在不实现任何模式的情况下操作控件?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
