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

相关文章
|
11天前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
42 5
|
14天前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
9天前
|
自然语言处理 机器人 Python
ChatGPT使用学习:ChatPaper安装到测试详细教程(一文包会)
ChatPaper是一个基于文本生成技术的智能研究论文工具,能够根据用户输入进行智能回复和互动。它支持快速下载、阅读论文,并通过分析论文的关键信息帮助用户判断是否需要深入了解。用户可以通过命令行或网页界面操作,进行论文搜索、下载、总结等。
21 1
ChatGPT使用学习:ChatPaper安装到测试详细教程(一文包会)
|
11天前
|
JavaScript 前端开发 测试技术
精通Selenium:从基础到高级的网页自动化测试策略
【10月更文挑战第6天】随着Web应用变得越来越复杂,手动进行功能和兼容性测试变得既耗时又容易出错。自动化测试因此成为了现代软件开发不可或缺的一部分。Selenium是一个强大的工具集,它支持多种编程语言(包括Python),允许开发者编写脚本来模拟用户与Web页面的交互。本文将带领读者从Selenium的基础知识出发,逐步深入到高级的应用场景,通过丰富的代码示例来展示如何高效地进行网页自动化测试。
33 5
|
13天前
|
Web App开发 缓存 Linux
高效Selenium测试技巧:轻松控制已开启的浏览器
【10月更文挑战第13天】在进行Selenium测试时,通常会启动新浏览器实例,但有时需要控制已开启的浏览器,以节省时间并更真实地模拟用户行为。这可通过设置Chrome为可远程控制并使用`Remote WebDriver`连接实现。需在启动Chrome时添加`--remote-debugging-port`参数,并通过Python脚本中的`webdriver.Remote`连接至指定端口。此外,还可利用会话ID(Session ID)重新连接浏览器,提高测试灵活性。需要注意浏览器版本兼容性及元素定位稳定性等问题,确保测试准确性和一致性。
|
16天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【10月更文挑战第1天】告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
45 4
|
1月前
|
Web App开发 JavaScript Java
自动化测试的利剑:Selenium WebDriver入门与实践
【9月更文挑战第21天】在软件开发的海洋中,自动化测试犹如一艘船,帮助开发者们快速航行至质量保证的彼岸。本文将作为你的罗盘,指引你了解和掌握Selenium WebDriver这一强大的自动化测试工具。通过深入浅出的方式,我们将探索Selenium WebDriver的基本概念、安装过程以及编写简单测试脚本的方法。无论你是刚接触自动化测试的新手,还是希望提升测试技能的开发者,这篇文章都将为你提供有价值的指导。
|
1月前
|
JSON 前端开发 JavaScript
java中post请求调用下载文件接口浏览器未弹窗而是返回一堆json,为啥
客户端调接口需要返回另存为弹窗,下载文件,但是遇到的问题是接口调用成功且不报错,浏览器F12查看居然返回一堆json,而没有另存为弹窗; > 正确的效果应该是:接口调用成功且浏览器F12不返回任何json,而是弹窗另存为窗口,直接保存文件即可。
78 2
|
1月前
|
敏捷开发 Java 测试技术
探索自动化测试的奥秘:从Selenium到Appium
【9月更文挑战第14天】软件测试,这个看似枯燥乏味却至关重要的领域,正经历着一场革命。随着技术的进步,自动化测试工具如Selenium和Appium已成为质量保证的利器。本文将带你一探这些工具的神秘面纱,了解它们如何简化测试流程、提升效率,并确保软件产品的质量。准备好,我们将深入自动化测试的世界,解锁其背后的原理和实践技巧。
|
15天前
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【10月更文挑战第2天】在软件开发的海洋中,自动化测试犹如一艘救生艇,让质量保证的过程更加高效与精准。本文将深入探索Selenium这一强大的自动化测试框架,从其架构到实际应用,带领读者领略自动化测试的魅力和力量。通过直观的示例和清晰的步骤,我们将一起学习如何利用Selenium来提升软件测试的效率和覆盖率。