《手把手教你》系列技巧篇(二十六)-java+ selenium自动化测试-浏览器操作(详细教程)

简介: 【4月更文挑战第18天】本文介绍了Web自动化中的浏览器操作,包括如何打开不同类型的浏览器(如IE、Chrome、Firefox),以及进行页面操作如打开URL、浏览器最大化、刷新、前进和后退。还展示了如何设置浏览器位置和大小,以及获取当前URL和标题。此外,提供了项目实战例子,演示了如何用Selenium实现打开浏览器、设置位置和大小、搜索并执行页面操作的过程。文章最后提到一些其他可用的方法,并鼓励读者继续学习自动化测试相关知识。

1.简介

  在Web自动化的操作中,我们通常需要使用一些方法来操作浏览器,今天就来学习一下。这一篇宏哥主要是介绍一下,在自动化测试的时候,我们常见的一些浏览器操作有哪些,宏哥将会一一介绍和讲解。

2.浏览器操作

宏哥首先介绍一下常用的基本操作,然后再通过具体实例给小伙伴或者童鞋们演示一下。

2.1打开浏览器

//IE浏览器

System.setProperty("webdriver.ie.driver", ".\\Tools\\IEDriverServer.exe");

WebDriver driver = new InternetExplorerDriver();

 

//Chrome

System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");

WebDriver driver = new ChromeDriver();

 

//FireFox(自定义安装)

System.setProperty("webdriver.firefox.bin", "D:\\ProgramFiles\\Mozilla Firefox\\firefox.exe");

//FireFox版本大于48,默认安装

System.setProperty("webdriver.firefox.marionette", ".\\Tools\\geckodriver.exe");

//FireFox版本小于48

System.setProperty("webdriver.firefox.marionette", ".\\Tools\\geckodriver.exe");

WebDriver driver = new FirefoxDriver();

2.2打开url

//两种方式实现的效果一样

String url = "http://www.baidu.com";

driver.get(url);

driver.navigate().to(url);

2.3浏览器最大化

窗口最大化,maximize()方法可以将浏览器窗口最大化

// 浏览器窗口最大

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

2.4浏览器刷新

refresh()方法可以在自动化测试的时候刷新当前页面

// 当前页刷新

driver.navigate().refresh();

2.5浏览器前进

forward()方法可以模拟浏览器的前进操作

// 前进,跳转到下一页

driver.navigate().forward ();

2.6浏览器后退

back()方法可以模拟浏览器的回退操作

// 后退,跳转到上一页

driver.navigate().back();

2.7浏览器位置和设置窗口位置

浏览器的位置设置getPosition()

* 注意targetPosition是一个点对象,把一个点作为参数传入

* 声明一个 point 对象,两个 150 表示浏览器的位置相对于屏幕左上角(0,0)的横纵坐标举例

Point targetPosition = new Point(150,150);

driver.manage().window().setPosition(targetPosition);

System.out.println(driver.manage().window().getPosition());

2.8浏览器窗口大小

获得窗口大小,getSize()方法能够获得窗口的尺寸信息,返回一个Dimension对象,该对象包括了窗口的高度,宽度信息

*注意targetSize是一个对象传入,也不可以直接写成 1366*768

* 1366 * 768          表示窗口的长和宽

Dimension targetSize = new Dimension(1366,768);

driver.manage().window().setSize(targetSize);

System.out.println(driver.manage().window().getSize());

2.9返回当前的url和title

// 返回当前页面的Ttile

String title = driver.getTitle();

// 返回当前页面的url

String currentUrl = driver.getCurrentUrl();

3.0关闭浏览器

// 关闭当前页面

driver.close();

// 关闭由selenium所启动的所有页面

driver.quit();

3.项目实战

以度娘为例,打开浏览器设置浏览器的位置,然后再设置浏览器的大小。最后将浏览器最大化。查询“北京宏哥”后,刷新页面执行回退到百度首页,然后有执行前进进入到搜索“北京宏哥”页面。

3.1代码设计

3.2参考代码

package lessons;


import org.openqa.selenium.By;

import org.openqa.selenium.Dimension;

import org.openqa.selenium.Point;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;


/**

* @author 北京-宏哥

*

* 2021年9月6日

*/

public class Windows {

   

   public static void main(String[] args) throws InterruptedException {

       //打开浏览器

       System.setProperty("webdriver.gecko.driver", ".\\Tools\\chromedriver.exe"); //指定驱动路径


       WebDriver driver =new ChromeDriver();

       

       //设置浏览器出现的位置

         driver.manage().window().setPosition(new Point(1350, 200));

         Thread.sleep(1000);

         //设置浏览器大小

         driver.manage().window().setSize(new Dimension(200, 500));

         Thread.sleep(1000);

         //获取浏览器位置和大小信息

         System.out.println("浏览器所在位置:"+driver.manage().window().getPosition());

         System.out.println("浏览器大小:"+driver.manage().window().getSize());

         //浏览器满屏,覆盖任务栏

       //webDriver.manage().window().fullscreen();

         //浏览器最大化,不覆盖任务栏

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

         System.out.println("浏览器最大化");

       //打开URL

       driver.get("http://www.baidu.com");

       System.out.println("打开URL");

       Thread.sleep(2000);

       

       //输入“北京宏哥”,点击“百度一下”

       WebElement SearchBox  = driver.findElement(By.xpath( "//*[@id='kw']" ));

       SearchBox.sendKeys("北京宏哥");

       WebElement SearchButton  = driver.findElement(By.xpath("//*[@id='su']"));

       

       SearchButton.click();

       

       // 当前页刷新

       driver.navigate().refresh();

       System.out.println("刷新当前页面");

       Thread.sleep(2000);

       //执行浏览器后退

       driver.navigate().back();

       System.out.println("back... this www.baidu.com");

       Thread.sleep(2000);

 

       //执行浏览器前进

       driver.navigate().forward();

       System.out.println("forward..."+driver.getCurrentUrl ());

       Thread.sleep(2000);

 

       driver.quit();

       Thread.sleep(2000);


       driver.quit();

   }


}

3.3运行代码

1.运行代码,右键Run AS->java Application,控制台输出,如下图所示:

2.运行代码后电脑端的浏览器的动作,可以看到查询“北京宏哥”后,刷新页面执行回退到百度首页,然后有执行前进进入到搜索“北京宏哥”页面。如下小视频所示:

4.小结

在代码报错处,提示导入包,要注意导入selenium的包(一个java包和一个selenium包),否则还报错,没有这个方法。如下图所示:

5.拓展

5.1其他方法

这些基本上在前边的文章中宏哥都介绍过了这里就简单的提一下,不做赘述了。

// 返回当前的浏览器的窗口句柄

String currentWindowHandle = driver.getWindowHandle()

// 返回当前的浏览器的所有窗口句柄

Set allWindowHandles = driver.getWindowHandles();

// 返回当前页面的源码

String currentPageSource = getPageSource()

   好了,时间不早了今天就分享到这里,感谢你耐心地阅读!




每天学习一点,今后必成大神-

往期推荐(由于跳转参数丢失了,所有建议选中要访问的右键,在新标签页中打开链接即可访问):

Appium自动化系列,耗时80天打造的从搭建环境到实际应用精品教程测试

Python接口自动化测试教程,熬夜87天整理出这一份上万字的超全学习指南

Python+Selenium自动化系列,通宵700天从无到有搭建一个自动化测试框架

Java+Selenium自动化系列,仿照Python趁热打铁呕心沥血317天搭建价值好几K的自动化测试框架

Jmeter工具从基础->进阶->高级,费时2年多整理出这一份全网超详细的入门到精通教程

Fiddler工具从基础->进阶->高级,费时100多天吐血整理出这一份全网超详细的入门到精通教程

Pycharm工具基础使用教程

相关文章
|
16小时前
|
监控 安全 网络协议
社会工程渗透测试教程(一)(4)
社会工程渗透测试教程(一)
9 1
|
16小时前
|
存储 安全 物联网
社会工程渗透测试教程(一)(3)
社会工程渗透测试教程(一)
7 0
|
16小时前
|
安全 JavaScript 物联网
社会工程渗透测试教程(一)(2)
社会工程渗透测试教程(一)
7 0
|
16小时前
|
存储 安全 网络安全
社会工程渗透测试教程(一)(1)
社会工程渗透测试教程(一)
9 1
|
16小时前
|
安全 Oracle 关系型数据库
社会工程渗透测试教程(四)(4)
社会工程渗透测试教程(四)
7 1
|
16小时前
|
存储 安全 网络安全
社会工程渗透测试教程(四)(3)
社会工程渗透测试教程(四)
10 1
|
16小时前
|
存储 安全 网络安全
社会工程渗透测试教程(四)(2)
社会工程渗透测试教程(四)
10 2
|
16小时前
|
存储 自然语言处理 安全
社会工程渗透测试教程(四)(1)
社会工程渗透测试教程(四)
9 1
社会工程渗透测试教程(四)(1)
|
16小时前
|
IDE Java 测试技术
Java测试三两事
Java测试三两事
9 1
|
16小时前
|
存储 安全 网络安全
社会工程渗透测试教程(三)(4)
社会工程渗透测试教程(三)
12 2

热门文章

最新文章