我正在使用UI自动化(COM包装器)框架进行大多数测试,但是我已经找到了一个控件,我看不到内部控件,我根本不想做Click(60,100)。< / p>
我想知道是否有一种简单的方法可以让对象成为自我,
我想使用像Control.FromHandle()这样的东西,但由于我的应用程序与测试不在同一个PID中,因此返回null。
我想我可能不得不使用注射,但我不知道我是否可以将GUI对象传回我的主线程(来自注入的一个)
我认为控件是ListBar(来自infragistics),如果有帮助的话。
任何建议都将不胜感激
答案 0 :(得分:1)
就像Brendan所说,你可以得到处理(HWND / IntPtr)然后使用Win32SDK的所有优点。
我自己有几个场景,其中e。 G。某些工具栏不会通过UIAutomation暴露他们的孩子,但是通过(复杂的)SDK调用,你仍然可以获得它们。
请注意,最简单 - 也很漂亮(尽管不是100%可靠)解决方案是使用相对于父控件的屏幕坐标。通常,孩子们不会改变他们的位置,所以一切都运行良好99.99%。
稍微不那么可靠,快得多(运行时有点,开发时间很多)。