WebDriver中在多个浏览器窗口切换

package webdriver;

import java.util.logging.Logger;

import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

/**
 * 
 * Change window in multi browser windows
 *
 */
public class TestWebDriver2 {
	private static final Logger logger = Logger.getLogger(TestWebDriver2.class.getName());
	private WebDriver webDriver;

	@BeforeClass
	public void beforeClass(){
		webDriver = new FirefoxDriver();
	}

	@Test
	public void f(){
		//open the first window
		//we have basic authentication, so specify username/password in the url
		webDriver.get("http://leizhen:[email protected]:2001/HTTPAdmin");
		logger.info(webDriver.getTitle());
		String currentWindow = webDriver.getWindowHandle();

		//open a new window
		Actions action = new Actions(webDriver);
		action.keyDown(Keys.CONTROL).sendKeys("n").perform();

		//change to the new opened window
		for(String window : webDriver.getWindowHandles()){
			if(!window.equals(currentWindow)){
				webDriver.switchTo().window(window);
				break;
			}
		}
		webDriver.get("http://leizhen:[email protected]:2001/HTTPAdmin");
		logger.info(webDriver.getTitle());

		//change back to the first window
		webDriver.switchTo().window(currentWindow);
		logger.info(webDriver.getTitle());
	}

	@AfterClass
	public void afterClass(){
		webDriver.quit();
	}
}
时间: 2024-10-12 04:32:02

WebDriver中在多个浏览器窗口切换的相关文章

web自动化 -- 浏览器窗口切换

切换浏览器窗口 示例: from time import sleep from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC url = "https://www.baidu.com" search_box = '//*[@id=&quo

回顾JS如何向网页中输入内容,与浏览器窗口进行交互

第2章 请和我互动(常用互动方法) 本章节主要讲解如何向网页中输入内容,如何与浏览器窗口进行交互,通过简单的对象方法就可以轻松实现. 2-1 JavaScript-输出内容(document.write) 2-2 JavaScript-警告(alert 消息对话框) 2-3 JavaScript-确认(confirm 消息对话框) 2-4 JavaScript-提问(prompt 消息对话框) 2-5 JavaScript-打开新窗口(window.open) 2-6 JavaScript-关闭

webdriver中的三大等待及窗口的切换

一.傻等 适用于等待5S以内 time.sleep(seconds) 二.隐性等待 implicitly_wait(30)  一个会话只需要调用一次即可,设置等待上限,比如30S,如果你在30秒内元素出现了,就不等了,去执行下一行代码,如果30秒还没有出现,就报错,超时 driver = webdriver.Chrome()driver.implicitly_wait(30) driver.get("http://www.baidu.com") driver.find_element_

CEF中禁止弹出浏览器窗口

使用CEF时,加载的网页,如果里面有链接,指定target="_blank",则会弹出一个新的浏览窗口.如果想禁掉,让新页面在当前浏览窗口中显示,可以在browser进程的handler里重写CefLifeSpanHandler的OnBeforePopup方法,用browser的mainFrame加载popup请求的url.代码如下: bool SimpleHandler::OnBeforePopup(CefRefPtr<CefBrowser> browser, CefRe

angularjs 中打开新的浏览器窗口(解决window.open(),浏览器拦截问题)

第一步:通过点击事件,打开新窗口,并且传递参数 $scope.finalTrial = function(data){ var url = $state.href('content.checkFinalTrial') window.open(url+'?id='+data.id+'&type=1')} 注:点击后需要直接调用window.open(),如果在ajax获取成功后再打开窗口,那么浏览器会阻止新窗口打开 第二步:通过$location.search()获取通过新窗口url传递的参数,并

webdriver实现简单的窗口切换

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

Selenium中怎么实现多个窗口之间的切换?

Selenium 多窗口(多Tab)之前的切换 多窗口的切换的目的是为了让selenium改变操作的窗口.在selenium中假如不切换窗口,一旦遇到一个链接跳转到另外的窗口的时候,当前的资源句柄操作的依然是最开始的窗口,这样一来,就给自动化人员带来极大的不便.在多窗口的切换中,资源句柄会随着切换窗口而切换操作的资源句柄.在切换窗口的时候需要做的步骤与思路:获取当前浏览器的所有资源句柄放到Set集合中,通过遍历的方式获取该资源句柄的Title与实际想切换的窗口的Title进行比较,如果相等,那么

章节十四、6-如何切换浏览器窗口

一.在自动化的过程中我们需要把操作从一个窗口转移到另一个窗口进行一些操作,那么我们该如何实现这个功能? 例如,我们需要在点击图中“打开新窗口”后在新的窗口中进行搜索. 每个窗口都带有一个固定句柄,每个打开的窗口都会有一个id,我们需要让selenium找到这个id然后在各个句柄(窗口)中进行切换 1 package switchto; 2 3 import java.util.Set; 4 import java.util.concurrent.TimeUnit; 5 6 import org.

webdriver高级应用- 启动带有用户配置信息的firefox浏览器窗口

由于WebDriver启动FireFox浏览器时会启用全新的FireFox浏览器窗口,导致当前机器的FireFox浏览器已经配置的信息在测试中均无法生效,例如已经安装的浏览器插件.个人收藏夹等.为了解决此问题,自动化测试脚本中需要使用指定的配置信息来启动FireFox浏览器窗口. 1.生成用户自定义的FireFox浏览器配置文件: 在CMD中使用cd命令进入firefox.exe文件所在目录(比如:C:\Program Files\Mozilla Firefox),并输入firefox.exe