《手把手教你》系列技巧篇(二十六)-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工具基础使用教程

相关文章
|
1月前
|
编解码 JavaScript 前端开发
【Java进阶】详解JavaScript的BOM(浏览器对象模型)
总的来说,BOM提供了一种方式来与浏览器进行交互。通过BOM,你可以操作窗口、获取URL、操作历史、访问HTML文档、获取浏览器信息和屏幕信息等。虽然BOM并没有正式的标准,但大多数现代浏览器都实现了相似的功能,因此,你可以放心地在你的JavaScript代码中使用BOM。
73 23
|
5月前
|
Web App开发 数据采集 JavaScript
CDP与Selenium相结合——玩转网页端自动化数据采集/爬取程序
本文介绍了Selenium、Chrome DevTools及Chrome DevTools Protocol (CDP) 的基本功能与应用。Selenium是一款开源自动化测试工具,适用于网页端应用程序测试和数据采集,具备跨平台特性。Chrome DevTools内置浏览器中,提供调试、分析Web应用程序的功能,包括元素、控制台、源代码和网络选项卡等。CDP是一套用于与Chromium内核浏览器通信的API,支持自动化测试和性能分析。文中还展示了Selenium与CDP结合使用的示例,如捕获网络请求数据和打印网页内容,并推荐了相关书籍和资源以供深入学习。
896 39
CDP与Selenium相结合——玩转网页端自动化数据采集/爬取程序
|
5月前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
199 31
Selenium IDE:Web自动化测试的得力助手
|
5月前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
407 17
Selenium:强大的 Web 自动化测试工具
|
7月前
|
Web App开发 Java
使用java操作浏览器的工具selenium-java和webdriver下载地址
【10月更文挑战第12天】Selenium-java依赖包用于自动化Web测试,版本为3.141.59。ChromeDriver和EdgeDriver分别用于控制Chrome和Edge浏览器,需确保版本与浏览器匹配。示例代码展示了如何使用Selenium-java模拟登录CSDN,包括设置驱动路径、添加Cookies和获取页面源码。
506 6
|
6月前
|
Web App开发 设计模式 JavaScript
自动化测试之美:如何利用Selenium实现Web应用的高效测试
【10月更文挑战第29天】在软件开发的世界中,测试是确保产品质量的关键步骤。本文将带你了解如何使用Selenium这一强大的自动化测试工具,提高Web应用测试的效率和准确性。通过实际案例,我们将探索Selenium的核心功能及其在现代软件开发中的应用,旨在帮助读者掌握自动化测试的精髓,从而提升软件测试工作的整体效能。
113 0
|
7月前
|
Web App开发
Selenium操作360浏览器
Selenium操作360浏览器
107 0
|
7月前
|
Web App开发 Java 测试技术
一、自动化:web自动化。Selenium 入门指南:从安装到实践
一、自动化:web自动化。Selenium 入门指南:从安装到实践
143 0
|
3月前
|
存储 监控 Java
【Java并发】【线程池】带你从0-1入门线程池
欢迎来到我的技术博客!我是一名热爱编程的开发者,梦想是编写高端CRUD应用。2025年我正在沉淀中,博客更新速度加快,期待与你一起成长。 线程池是一种复用线程资源的机制,通过预先创建一定数量的线程并管理其生命周期,避免频繁创建/销毁线程带来的性能开销。它解决了线程创建成本高、资源耗尽风险、响应速度慢和任务执行缺乏管理等问题。
249 60
【Java并发】【线程池】带你从0-1入门线程池
|
1月前
|
Java 中间件 调度
【源码】【Java并发】从InheritableThreadLocal和TTL源码的角度来看父子线程传递
本文涉及InheritableThreadLocal和TTL,从源码的角度,分别分析它们是怎么实现父子线程传递的。建议先了解ThreadLocal。
77 4
【源码】【Java并发】从InheritableThreadLocal和TTL源码的角度来看父子线程传递

热门文章

最新文章