如何使用TestStack.White框架通过变量标题查找窗口?
问题描述:
我使用TestStack.White框架来自动MS Word中打开新的文件2013年如何使用TestStack.White框架通过变量标题查找窗口?
我与打开Microsoft Word应用程序:
Application application = Application.Launch("winword.exe");
在那之后,我想获得通过局部窗口标题:
Window window = application.GetWindow("Word", InitializeOption.NoCache);
但它会抛出一个异常,说没有这样的窗口。
窗口标题是:文档1 - 字
的问题是:如何通过偏题得到一个窗口考虑到标题是每次都改变:“文档2 - 字”,“文件3 - 字”等
还试图*字,但看起来像本功能不支持通配符
如果我调用: 列表窗口= application.GetWindows(); 启动应用程序后,Windows列表为空。
由于提前, Ostap
答
它看起来像打开的窗口中需要一定的时间明显。 GUI测试框架通常具有Wait()这样的功能,以确保窗口已被创建/可见/启用。我不是Teststack.White的专家。大概这份文件可能有所帮助:http://teststackwhite.readthedocs.io/en/latest/AdvancedTopics/Waiting/
答
你可以使用EnumWindows找到所有打开的窗口。
在该回调,你会得到一个窗口句柄,然后可以我们GetWindowTextLength和GetWindowText
这将让你决定是你想要的是什么窗口的窗口句柄。从那里您可以使用GetWindowThreadProcessId来检索word文档的进程ID。
最后与您可以创建一个使用Application.Start()
感谢,将检查 – 2014-11-03 09:17:08
等待没有帮助TestStack白色的应用程序,窗口没有30秒后发现。试图通过在屏幕上100%的标题进行搜索。在窗口搜索之前还尝试了10秒的睡眠时间。 – 2014-11-06 16:22:27
好的,这是微软。 :) 如何使用COM interop界面和Word对象模型? http://msdn.microsoft.com/en-us/library/kw65a0we.aspx – 2014-11-06 19:21:19