如何使用Microsoft Coded UI从Microsoft Word切换到Firefox浏览器(已经推出)?

时间:2015-02-14 06:08:08

标签: c# testing selenium-webdriver ui-automation coded-ui-tests

我正在使用Microsoft Coded UI 2012来自动化基于Web的应用程序。我为此目的使用Selenium WebDriver dll。我的要求如下: 1.启动Firefox。 2.启动Microsoft Word。 3.在Microsoft Word中输入一些值。 4.切换回Firefox。 (这是失败的地方) 5.在Firefox中执行某些操作。

请在下方找到以下代码的摘要:

Driver driverObj = new Driver();
driverObj.InitiateDriver(); //creates a new Firefox driver
String strWindowHandle = driverObj.driver.WindowHandles.ToString(); //getting the windows handle of the firefox browser
this.UIMap.RecordedMethod3(); //recorded method to interact with Microsoft Word
driverObj.driver.WindowHandles.IndexOf(strWindowHandle);//switches the handle back to Firefox
driverObj.GoogleSearch();//performs operation on firefox
this.UIMap.RecordedMethod4();//Recorded method to close Microsoft word.

现在我面临的问题是:启动Microsoft字时,它不会切换回Firefox窗口。但是,在更改窗口句柄后,firefox窗口上的操作将在后台执行。我想通过切换到Firefox窗口来显示在前台执行的操作。编码的UI未能这样做。但是,测试在所有操作都已执行时通过。

2 个答案:

答案 0 :(得分:0)

如果句柄有效,您可以使用SetForegroundWindow激活firefox窗口并将其置于顶部:

[DllImport("user32.dll")]
static extern bool SetForegroundWindow(IntPtr hWnd);

答案 1 :(得分:0)

由于通常编码将焦点设置在他正在操作的控件上 - 尝试在要显示的firefox窗口上使用SetFocus()方法,或者用鼠标单击它 - 因为这个操作不能在隐藏窗口上执行。 / p>