如何使用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/

+0

感谢,将检查 – 2014-11-03 09:17:08

+0

等待没有帮助TestStack白色的应用程序,窗口没有30秒后发现。试图通过在屏幕上100%的标题进行搜索。在窗口搜索之前还尝试了10秒的睡眠时间。 – 2014-11-06 16:22:27

+0

好的,这是微软。 :) 如何使用COM interop界面和Word对象模型? http://msdn.microsoft.com/en-us/library/kw65a0we.aspx – 2014-11-06 19:21:19

你可以使用EnumWindows找到所有打开的窗口。

在该回调,你会得到一个窗口句柄,然后可以我们GetWindowTextLengthGetWindowText

这将让你决定是你想要的是什么窗口的窗口句柄。从那里您可以使用GetWindowThreadProcessId来检索word文档的进程ID。

最后与您可以创建一个使用Application.Start()