WebDriver(C#)之窗口切换

上一篇 / 下一篇  2016-08-26 18:59:39 / 个人分类:Selenium

自动化测试过程中会打开新页面,造成同时出现2个或者以上窗口,这时候就需要切换到新窗口操作,不然会出现无法定位到对应元素的情况,下面介绍几种常见的解决方案。

方案一:如果新打开的window设置过name或者id,则可以直接调用

driver.SwitchTo().Window(windowName);

 

方案二:

Window通常没有nameid属性,这时可以先关闭旧窗口,然后新打开的窗口可以使用driver.SwitchTo().Window(winHandle)方法来获取,代码如下:

StringwinHandleBefore = driver.CurrentWindowHandle;

driver.SwitchTo().Window(winHandleBefore); //关闭旧窗口

driver.Close();

foreach(stringwinHandleindriver.WindowHandles)  //获取新窗口

{

driver.SwitchTo().Window(winHandle);

}

方案三

也可以获取当前driver驱动的所有窗口的handle然后进行对比,如果窗口的title符合预期则结束切换,方法如下:

foreach(stringwinHandleindriver.WindowHandles)  

{

driver.SwitchTo().Window(winHandle);

if(driver.Title.Contains(title)) //新窗口title

{

break;

}

}

 

方案四:

        遍历driver驱动的窗口,判断是否原来的窗口,如果不是原来的窗口则切换。

StringwinHandleBefore = driver.CurrentWindowHandle;

foreach(stringwinHandleindriver.WindowHandles)  

{

if(winHandleBefore.Equals(winHandle))

{

continue;

}

driver.SwitchTo().Window(winHandle);

}

        


TAG: webdriver WebDriver 切换窗口

 

评分:0

我来说两句

Open Toolbar