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

相关文章
|
9月前
|
人工智能 数据可视化 测试技术
Postman 性能测试教程:快速上手 API 压测
本文介绍API上线后因高频调用导致服务器告警,通过Postman与Apifox进行压力测试排查性能瓶颈。对比两款工具在批量请求、断言验证、可视化报告等方面的优劣,探讨API性能优化策略及行业未来发展方向。
Postman 性能测试教程:快速上手 API 压测
|
10月前
|
Java 关系型数据库 数据库
Java 项目实战教程从基础到进阶实战案例分析详解
本文介绍了多个Java项目实战案例,涵盖企业级管理系统、电商平台、在线书店及新手小项目,结合Spring Boot、Spring Cloud、MyBatis等主流技术,通过实际应用场景帮助开发者掌握Java项目开发的核心技能,适合从基础到进阶的学习与实践。
1442 4
|
9月前
|
安全 Java
Java之泛型使用教程
Java之泛型使用教程
473 10
|
10月前
|
前端开发 Java jenkins
Jmeter压力测试工具全面教程和使用技巧。
JMeter是一个能够模拟高并发请求以检查应用程序各方面性能的工具,包括但不限于前端页面、后端服务及数据库系统。熟练使用JMeter不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
2044 10
|
8月前
|
Oracle Java 关系型数据库
Java 简单教程
Java是跨平台、面向对象的编程语言,广泛用于企业开发、Android应用等。本教程涵盖环境搭建、基础语法、流程控制、面向对象、集合与异常处理,助你快速入门并编写简单程序,为进一步深入学习打下坚实基础。
598 0
|
9月前
|
监控 测试技术 API
n8n自动化测试教程 (1):环境搭建与初识n8n
n8n是一款开源、可视化的工作流自动化工具,测试工程师可通过拖拽节点快速构建API测试流程,实现测试编排、数据管理、自动化监控与告警等功能,提升测试效率与覆盖率。
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【10月更文挑战第2天】在软件开发的海洋中,自动化测试犹如一艘救生艇,让质量保证的过程更加高效与精准。本文将深入探索Selenium这一强大的自动化测试框架,从其架构到实际应用,带领读者领略自动化测试的魅力和力量。通过直观的示例和清晰的步骤,我们将一起学习如何利用Selenium来提升软件测试的效率和覆盖率。
|
Web App开发 JavaScript Java
自动化测试的利剑:Selenium WebDriver入门与实践
【9月更文挑战第21天】在软件开发的海洋中,自动化测试犹如一艘船,帮助开发者们快速航行至质量保证的彼岸。本文将作为你的罗盘,指引你了解和掌握Selenium WebDriver这一强大的自动化测试工具。通过深入浅出的方式,我们将探索Selenium WebDriver的基本概念、安装过程以及编写简单测试脚本的方法。无论你是刚接触自动化测试的新手,还是希望提升测试技能的开发者,这篇文章都将为你提供有价值的指导。
|
测试技术 数据安全/隐私保护 开发者
自动化测试的奥秘:如何用Selenium和Python提升软件质量
【9月更文挑战第35天】在软件开发的海洋中,自动化测试是那艘能引领我们穿越波涛的帆船。本文将揭开自动化测试的神秘面纱,以Selenium和Python为工具,展示如何构建一个简单而强大的自动化测试框架。我们将从基础出发,逐步深入到高级应用,让读者能够理解并实现自动化测试脚本,从而提升软件的质量与可靠性。