Java+Selenium常用函数整理(一、浏览器操作)

本文详细介绍了使用Java+Selenium进行浏览器操作的方法,包括页面导航、窗口和Tab管理、Frames和IFrames切换、窗口大小位置设置等。重点讲解了如何在不同场景下进行页面跳转、窗口切换、iframe操作以及窗口属性调整。
摘要:浏览器操作
			 - 导航
			 - 窗口和tabs
			 - Frames and IFrames
			 - window管理
			 - 设置窗口

一、导航

1)页面导航到

driver.get("https://www.baidu.com")

driver.navigate.to("https://www.baidu.com")

区别:get是有逻辑的跳转,而navigate.to是直接跳转到该页面,没有任何逻辑
参考:https://blog.youkuaiyun.com/gaokao2011/article/details/17169969

2)获取当前页面URL

String url = driver.getCurrentUrl();   //返回的是字符串
System.out.println(url);     //https://www.baidu.com

3)返回上一页面

driver.navigate.back();

4)前进下一页面

driver.navigate.forward();

5)刷新当前页面

driver.navigate.refresh();

6)获取当前页面的title

String title = driver.getTitle();  //返回字符串
System.out.println(title);   //百度一下,你就知道

二、窗口和Tabs

当driver打开一个新窗口时,若想操作新窗口上的元素,则需要将driver切换到新窗口

1)获取当前窗口句柄

String currentWindowHandle = driver.getWindowHandle();   //返回字符串

2)获取所有窗口句柄

Set<String> allWindowHandles = driver.getWindowHandles();  //返回字符串集合

3)切换到新窗口

driver.switchTo().window(newHandle);  //newHandle为要切换的新窗口的句柄

例子:
1、打开百度页面
2、输入【selenium】进行搜索
3、点击【百度百科】
4、切换到新打开的页面,鼠标悬停【分类】,点击下面的【艺术】
5、切换到新打开的页面,点击【穿越800年】链接

import java.util.Set;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;

public class Demo5 {
	public static void main(String[] args) throws InterruptedException {
		// TODO Auto-generated method stub
		WebDriver driver = new ChromeDriver();
		//1、打开浏览器,进入百度页面
		driver.get("https://www.baidu.com/");
		//2、输入框中输入selenium
		driver.findElement(By.id("kw")).sendKeys("selenium");
		//3、点击百度一下
		driver.findElement(By.id("su")).click();
		//4、点击百度百科
		Thread.sleep(5000);
		driver.findElement(By.xpath("//a[contains(text(),'百度百科')]")).click();
		Thread.sleep(3000);
		//5、获取新窗口的句柄并切换到新窗口
			// 1) 先保存一下第一个窗口的句柄
		String firstpage = driver.getWindowHandle();
			// 2) 获取所有窗口的句柄
		Set<String> handles = driver.getWindowHandles();
			// 3) 循环handles,找到新窗口的句柄
		String newHandle = "";
		
		for(String handle : handles){
			
			if(handle!=firstpage){
				
				newHandle = handle;
			}
		}
			// 4) 切换到新窗口
		driver.switchTo().window(newHandle);
		
		Thread.sleep(2000);
		//6、鼠标悬停到【分类】上
			// 1) Actions类
		Actions action = new Actions(driver);
			// 2) 将鼠标移到【分类】上
		action.moveToElement(driver.findElement(By.linkText("分类"))).perform();
		
		Thread.sleep(5000);
		//7、点击【科学】
		driver.findElement(By.linkText("科学")).click();
		
		//8、鼠标悬停到【分类】上
		action.moveToElement(driver.findElement(By.linkText("分类"))).perform();	
		
		Thread.sleep(5000);
		//9、点击【艺术】
		driver.findElement(By.linkText("艺术")).click();
		
		//10、将句柄切换到新打开的窗口
		Set<String> allhandles = driver.getWindowHandles();
		
		for(String handle : allhandles){
			
			driver.switchTo().window(handle);
			if(driver.getTitle().contains("艺术百科_百度百科")){
				
				break;
			}
			
		}
		//11、点击【穿越800年】
		driver.findElement(By.partialLinkText("穿越800年")).click();
	}
}

4)关闭窗口或tabs

driver.close();

5)会话结束时退出浏览器

driver.quit();

三、Frames and IFrames

当页面上有iframe和frame元素时,若想操作iframe和frame下的html元素,则需要切换driver

1)切换到指定iframe或frame

WebElement element_iframe = driver.findElement(By.id("iframe1"));
driver.switchTo().frame(element_iframe);

2)切换回父页面

driver.switchTo().defaultContent();

四、window管理

1) 获取窗口大小

int width = driver.manage().window().getSize().getWidth();
int height = driver.manage().window().getSize().getHeight();
Dimension size = driver.manage().window().getSize();
int width = size.getWidth();
int height = size.getHeight();

2) 设置窗口大小

driver.manage().window().setSize(new Dimension(1024,768));

3) 获取窗口位置

int x = driver.manage().window().getPosition().getX();
int y = driver.manage().window().getPosition().getY();
Point position = driver.manage().window().getPosition();
int x = position.getX();
int y = position.getY();

五、设置窗口

1)设置窗口位置

driver.manage().window().setPositon(new Point(0,0));

2)最大化窗口

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

3)全屏窗口

driver.manage().window().fullscreen();
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

影已落流水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值