WebDriver(C#)之窗口切换
上一篇 /
下一篇 2016-08-26 18:59:39
/ 个人分类:Selenium
自动化测试过程中会打开新页面,造成同时出现2个或者以上窗口,这时候就需要切换到新窗口操作,不然会出现无法定位到对应元素的情况,下面介绍几种常见的解决方案。
方案一:如果新打开的window设置过name或者id,则可以直接调用
driver.SwitchTo().Window(windowName); |
方案二:
Window通常没有name或id属性,这时可以先关闭旧窗口,然后新打开的窗口可以使用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); } |
相关阅读:
- JavaWebDriver调用火狐简答实例 (51test_pp, 2016-1-15)
- 3_Selenium+TestNG (lirenlong_9990, 2016-2-16)
- 3_Selenium+TestNG (lirenlong_9990, 2016-2-16)
- 4_Selenium框架封装 (lirenlong_9990, 2016-2-20)
- 5_Selenium Log4j日志 (lirenlong_9990, 2016-2-25)
- 基于Ruby的watir-webdriver自动化测试方案与实施(1) (zaza9084, 2016-4-28)
- Webdriver-上传文件处理 (ChinaTNT, 2016-3-29)
- 基于java的selenium webdriver 封装 (快乐逍遥, 2016-5-19)
- 基于java的selenium webdriver 封装 (快乐逍遥, 2016-5-19)
- WebDriver的几种定位方式介绍 (zaza9084, 2016-6-08)
收藏
举报
TAG:
webdriver
WebDriver
切换窗口