webdriver 窗口切换

1.通过浏览器的句柄来操纵窗口,得到句柄的方法

?





1

2

3

4

public String getWindowHandle(){

    String currentWindow = driver.getWindowHandle();

    return
currentWindow;

}

  

2.切换到最新的窗口

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

public void switchToNewWindow(){

    //得到当前句柄

String currentWindow = driver.getWindowHandle();

    //得到所有窗口的句柄

    Set<String> handles = driver.getWindowHandles();

    

    //排除当前窗口的句柄,则剩下是新窗口

    Iterator<String> it = handles.iterator();

    while(it.hasNext()){

        if(currentWindow == it.next())  continue;

        driver.switchTo().window(it.next());      

    }

    

}

3.切换到特定的窗口

 

?





1

2

3

public void switchToOneWindow(String windowHandle){

    driver.switchTo().window(windowHandle);

}

  

4.举例:

打开页面A,点击A页面的链接在新窗口打开页面B,验证B页面后关闭之,转回到A页面

?





1

2

3

4

5

6

7

8

9

10

11

12

        open("URLA");//打开页面A

        String w1 = getWindowHandle(); //得到页面A的句柄

assertTrue(isElementPresent("//*[contains(.,‘欢迎来到‘)]"),"首页打开失败"); //校验A页面元素

stepInfo("3.点击链接");

clickByLink("URLB");

switchToNewWindow();//切换到页面B

assertTrue(isElementPresent("//*[contains(.,‘您好,欢迎来到‘)]"),"打开失败");

close();//关闭页面B

switchToOneWindow(w1); //返回A

 注:上面的open, clickByLink, close都是封装了webDriver操作的方法,比较简单的

?





1

2

3

4

5

6

7

8

9

10

11

12

public void open(String url){

    driver.get(url);

}

public void clickByLink(String text){

    driver.findElement(By.linkText(text)).click();

}

public
void close(){

    driver.close();

}

  

欢迎光临娇娇家的美衣阁 http://shop105984718.taobao.com/

时间: 2024-10-04 11:18:35

webdriver 窗口切换的相关文章

selenium webdriver窗口切换

selenium webdriver窗口切换,有时候在做自动化的时候需要打开很多很多的页面, 当在操作不同的页面的时候需要切换窗口,下面是如何切换到前后页面窗口的操作: package test20161206; import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; im

webdriver实现简单的窗口切换

webdriver实现简单的窗口切换,也只能是简单的,因为目前处于学习阶段,复杂的情况现在还没碰到过.之前写过关于一个小demo的总结,就有提到过在新开窗口进行操作的情况,用以下一句就可以搞定了,last代表最后一个窗口,用switch_to切换到最后一个窗口(即新开的窗口)进行操作 dr.switch_to.window dr.window_handles.last 这样一般的流程整个下来是不会有问题的,可是很死板.如果我在操作过程中开了n个窗口,并且要返回到某个窗口去进行操作那该怎么办?显然

selenium测试(Java)--多窗口切换(十三)

如果遇到点击按钮或链接后出现新窗口的情况,就需要使用窗口切换的方法. 本例中就是先打开百度搜索界面,然后利用js打开一个百度新闻界面,然后通过selenium提供的窗口切换方法切换窗口 1 package com.test.windows; 2 3 import java.util.Iterator; 4 import java.util.Set; 5 6 import org.openqa.selenium.By; 7 import org.openqa.selenium.Javascript

selenium 窗口切换(多表单切换)

在web应用中,前台网页的设计一般会用到iframe/frame表单嵌套页面的应用.简单的就是一个页面签嵌套多个HEML/JSP文件.selenium webdriver  只能在同一页面识别定位元素,可以狭隘的理解成只能识别当前所在位置的页面上的元素.对于不同的iframe/frame表单中的元素是无法直接定位的.需要结合switchTo().frame()方法切换到指定的frame/iframe中.switchTo().frame()默认的是取表单的ID和name属性.如果没有id和name

Selenium_WebDriver_多窗口切换

摘要: 版权声明:本文为博主原创文章,转载请注明出处. 在页面操作过程中有时候点击某个链接会弹出新的窗口,这时我们如果需要操作新打开的页面,就需要将主机切换到新打开的窗口上再进行操作,比如博客园精华页的精华博文,每点击一篇就会打开一个浏览器窗口.WebDriver 提供了 switchTo().window()方法可以实现在不同的窗口之间切换. 方法 说明 switchTo().window() 原型 WebDriver window(java.lang.String nameOrHandle)

web自动化6-selenium多窗口切换及JS对话框处理

1.    多窗口切换 browser.window_handles                 显示所有句柄 browser.current_window_handle 显示当前句柄 browser.switch_to_window(browser.window_handles[1])  切换句柄 2.    js对话框处理 alter = browser.find_element_by_xpath('//*[@id="topguideloginform"]/div[4]/but

Selenium弹出新页面无法定位元素问题(Unable to locate element)--多窗口切换

最近学习到多窗口切换,在页面操作过程中有时点击某个链接会弹出新的窗口,这时需要先切换到新窗口才能对其进行操作.Webdriver提供了switch_to.window( ) 方法实现在不同窗口中切换. 查阅相关资料,得到两种方法来定位到当前页面: 方法一: browser.switch_to_window(browser.window_handles[1]) 方法二:直接定位当前最新弹出的窗口 for handle in browser.window_handles:#方法二,始终获得当前最后的

Selenium多窗口切换方法快速入门

问题描述:执行脚本时遇到最多的一个问题就是Unable to find element in selenium...,除了排除页面加载时间原因外,对于初学者常犯的一个错误是,点击某个按钮跳转到新页面的问题.若在当前页面打开,给予足够的加载时间即可.但若是新窗口打开页面时,Selenium是不会自动识别到新窗口去查找元素的,所以需要我们去模拟人为切换到新窗口.WebDriver 提供了 switchTo().window()方法可以实现在不同的窗口之间切换. 解决方案: 1.首先,确认在哪个ste

python学习之多窗口切换

多窗口切换: from selenium import webdriver d = webdriver.Firefox() d.window_handles #显示所有的窗口 d.current_window_handle#x显示当前窗口 d.switch_to_window(d.window_handles[1])#显示第一个窗口 d.current_url d.current_window_handle#x显示当前窗口 d.switch_to_window(d.window_handles[