《手把手教你》系列技巧篇(二十六)-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月前
|
数据采集 测试技术 Python
自动化淘宝秒杀:使用Selenium WebDriver的实战指南
本文详细介绍了如何利用Selenium WebDriver自动化淘宝秒杀操作,包括环境配置、代码实现及注意事项,旨在帮助读者提升秒杀成功率,同时提醒合理使用以遵守平台规则。
82 8
|
2月前
|
数据采集 存储 JavaScript
自动化数据处理:使用Selenium与Excel打造的数据爬取管道
本文介绍了一种使用Selenium和Excel结合代理IP技术从WIPO品牌数据库(branddb.wipo.int)自动化爬取专利信息的方法。通过Selenium模拟用户操作,处理JavaScript动态加载页面,利用代理IP避免IP封禁,确保数据爬取稳定性和隐私性。爬取的数据将存储在Excel中,便于后续分析。此外,文章还详细介绍了Selenium的基本设置、代理IP配置及使用技巧,并探讨了未来可能采用的更多防反爬策略,以提升爬虫效率和稳定性。
143 4
|
2天前
|
Web App开发 数据采集 JavaScript
CDP与Selenium相结合——玩转网页端自动化数据采集/爬取程序
本文介绍了Selenium、Chrome DevTools及Chrome DevTools Protocol (CDP) 的基本功能与应用。Selenium是一款开源自动化测试工具,适用于网页端应用程序测试和数据采集,具备跨平台特性。Chrome DevTools内置浏览器中,提供调试、分析Web应用程序的功能,包括元素、控制台、源代码和网络选项卡等。CDP是一套用于与Chromium内核浏览器通信的API,支持自动化测试和性能分析。文中还展示了Selenium与CDP结合使用的示例,如捕获网络请求数据和打印网页内容,并推荐了相关书籍和资源以供深入学习。
66 39
CDP与Selenium相结合——玩转网页端自动化数据采集/爬取程序
|
11天前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
61 19
Selenium IDE:Web自动化测试的得力助手
|
2月前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
2月前
|
Web App开发 Java
使用java操作浏览器的工具selenium-java和webdriver下载地址
【10月更文挑战第12天】Selenium-java依赖包用于自动化Web测试,版本为3.141.59。ChromeDriver和EdgeDriver分别用于控制Chrome和Edge浏览器,需确保版本与浏览器匹配。示例代码展示了如何使用Selenium-java模拟登录CSDN,包括设置驱动路径、添加Cookies和获取页面源码。
133 6
|
2月前
|
JavaScript 前端开发 测试技术
精通Selenium:从基础到高级的网页自动化测试策略
【10月更文挑战第6天】随着Web应用变得越来越复杂,手动进行功能和兼容性测试变得既耗时又容易出错。自动化测试因此成为了现代软件开发不可或缺的一部分。Selenium是一个强大的工具集,它支持多种编程语言(包括Python),允许开发者编写脚本来模拟用户与Web页面的交互。本文将带领读者从Selenium的基础知识出发,逐步深入到高级的应用场景,通过丰富的代码示例来展示如何高效地进行网页自动化测试。
500 5
|
2月前
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【10月更文挑战第2天】在软件开发的海洋中,自动化测试犹如一艘救生艇,让质量保证的过程更加高效与精准。本文将深入探索Selenium这一强大的自动化测试框架,从其架构到实际应用,带领读者领略自动化测试的魅力和力量。通过直观的示例和清晰的步骤,我们将一起学习如何利用Selenium来提升软件测试的效率和覆盖率。
|
1月前
|
Web App开发 设计模式 JavaScript
自动化测试之美:如何利用Selenium实现Web应用的高效测试
【10月更文挑战第29天】在软件开发的世界中,测试是确保产品质量的关键步骤。本文将带你了解如何使用Selenium这一强大的自动化测试工具,提高Web应用测试的效率和准确性。通过实际案例,我们将探索Selenium的核心功能及其在现代软件开发中的应用,旨在帮助读者掌握自动化测试的精髓,从而提升软件测试工作的整体效能。
44 0
|
3月前
|
数据采集 Web App开发 测试技术
使用Selenium与WebDriver实现跨浏览器自动化数据抓取
在网络爬虫领域,Selenium与WebDriver是实现跨浏览器自动化数据抓取的利器。本文详细介绍了如何利用Selenium和WebDriver结合代理IP技术提升数据抓取的稳定性和效率。通过设置user-agent和cookie来模拟真实用户行为,避免被网站检测和阻止。文章提供了具体的代码示例,展示了如何配置代理IP、设置user-agent和cookie,并实现了跨浏览器的数据抓取。合理的参数配置能有效减少爬虫被封禁的风险,提高数据抓取效率。
424 6
使用Selenium与WebDriver实现跨浏览器自动化数据抓取
下一篇
DataWorks