java 打开新页签,Java【selenium】在网站内打开新窗口,进行切换窗口

import java.util.Set;

import java.util.concurrent.TimeUnit;

import org.junit.jupiter.api.AfterEach;

import org.junit.jupiter.api.BeforeEach;

import org.junit.jupiter.api.Test;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

/*

*selenium在网站内切换窗口

*

*/

class SwitchingWindow {

//定义Webdriver

WebDriver driver;

//定义访问网址

String baseurl;

@BeforeEach

void setUp() throws Exception {

//谷歌浏览器的本地驱动

System.setProperty("webdriver.chrome.driver", "/Users/lisen/webselenium/selenium/chromedriver");

//new一个谷歌浏览器对象

driver =new ChromeDriver();

//定义访问网址,访问的是去哪网

baseurl="file:///Users/lisen/Downloads/PracticePage.html";

//打开网址过后,设置隐性等待,等待10秒

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

//打开网址后,窗口最大化

driver.manage().window().maximize();

}

@Test

void test() throws Exception {

//打开网址,调用driver.get方法

driver.get(baseurl);

//打印log信息

System.out.println("打开网址完成");

// //用id查找

// WebElement openwindo=driver.findElement(By.id(“openwindow”));

// openwindo.click();

// //打印log信息

// System.out.println(“点击网址完成”);

// //在新打开的窗口输入最新值

// WebElement searchBox=driver.findElement(By.id(“header-search-field”));

// searchBox.sendKeys(“selenium webdriver”);

/*

* 有些页面的链接打开后,会重新打开一个窗口,

* 对于这种情况,想在新页面上操作,就得先切换窗口了。

* 获取窗口的唯一标识用句柄表示,所以只需要切换句柄,

* 我们就能在多个页面上灵活自如的操作了。

*/

//获取当前窗口的Handle

String parentHandle=driver.getWindowHandle();

//主窗口Handle为

System.out.println(“主窗口Handle为”+parentHandle);

//查找打开新窗口按钮

WebElement openwindow =driver.findElement(By.id(“openwindow”));

//点击新窗口

openwindow.click();

Thread.sleep(3000);

//获取所有的Handle

Sethandles=driver.getWindowHandles();

//判断是否打开了新窗口

for(String handle:handles) {

System.out.println(handle);

if (!handle.equals(parentHandle)) {

driver.switchTo().window(handle);

Thread.sleep(3000);

//点击网站

driver.findElement(By.id(“result_logo”)).click();

//等待3秒钟

Thread.sleep(3000);

WebElement TestBox=driver.findElement(By.id(“kw”));

TestBox.sendKeys(“Selenium Webdriver”);

//等待2秒钟

Thread.sleep(2000);

//只关闭当前焦点窗口

driver.close();

//跳出当前循环

break;

}

//切换回主窗口

driver.switchTo().window(parentHandle);

//在主窗口输入文字

driver.findElement(By.id("name")).sendKeys("测试完成");

}

}

@AfterEach

void tearDown() throws Exception {

//设置等待时间,看清楚操作

Thread.sleep(2000);

//关闭浏览器

driver.quit();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值