java selenium针对多种情况的多窗口切换
一、通过按钮点击打开的新页面,不涉及到打开多窗口,只要在已有打开的窗口实现切换操作即可
Set<String> winHandels = driver.getWindowHandles();
List<String> it = new ArrayList<String>(winHandels);
String url = driver.getCurrentUrl();
System.out.println(url);
//跳转到新打开的窗口
driver.switchTo().window(it.get(1));
不加这一句,无法定位到新窗口的元素
driver.close();//通过这句可以将当前窗口给关闭
//回退到原有的窗口
driver.switchTo().window(it.get(0));
二、通过driver.get(url)打开多个窗口
试过很多次,比如
driver.get(url1);//open url1
driver.get(url2);//open url2
当执行到open url2的时候,url1会被关闭,那怎么实现打开多个窗口或者说在已有的窗口上new tab呢?
Method1:可以使用js
((JavascriptExecutor ) driver).executeScript("window.open(\"http://baidu.com\");");
可以通过js实现new tab
或者js打开空的tab页面,driver.get(url2)也可以实现;
Method2:
WebDriver driver1 = new FirefoxDriver();
WebDriver driver2 = new FirefoxDriver();
driver1.get(url1);
driver2.get(url2);
通过实例化两个driver,然后分别打开不同的url,这也是个巧方法
在对应的页面操作完成后关闭driver即可