《手把手教你》系列基础篇之(三)-java+ selenium自动化测试- 启动三大浏览器(上)(详细教程)
1.简介
前边宏哥已经将环境搭建好了,今天就在Java项目搭建环境中简单地实践一下: 启动三大浏览器。按市场份额来说,全球前三大浏览器是:IE.Firefox.Chrome。因此宏哥这里主要介绍一下如何启动这三大浏览器即可,其他浏览器类似的方法,照猫画虎就可以了。
2.启动浏览器准备工作
2.1准备工作
创建一个Selenium的Java项目,用来练习,具体步骤如下:
1.打开Eclipse,创建一个名称为Bjhg_Selenium的Java 项目,如下图所示:

2.在Bjhg_Selenium项目下,新建一个文件夹Tools,把Selenium相关包放到这个文件夹下,如下图所示:

3.右键项目,选择Build Path,然后选择Confige Build Path...,弹出框点击Libraries,如下图所示:

4.这里点击Add JARs...,弹出框,选择当前项目下tools这个文件夹里面的selenium-server-standalone-3.4.0.jar,点击OK,效果如下图所示:

准备工作就介绍到这里,下边介绍如何启动三大浏览器。
3.启动Chrome浏览器
3.1chrome和chromedriver版本下载地址及对应关系
【国外】chromedriver所有版本下载地址:http://chromedriver.storage.googleapis.com/index.html
【国内】chromedriver所有版本下载地址:https://npm.taobao.org/mirrors/chromedriver
【国内】chrome所有版本下载地址:https://www.chromedownloads.net/chrome64win/
【国外】浏览器版本和驱动版本对应关系查看网址:http://chromedriver.chromium.org/downloads
注意:一个大的chromedriver版本里面可能包含的有多个小版本,如果下载的Chromedriver版本和当前使用的chrome浏览器版本不匹配则可以换其他的试试。比如:chromedriver 79版里面有v79.0.3945.16 v79.0.3945.36
3.2驱动Chrome
1.在lessons包下创建类LaunchChrome.java,如下图所示:

2.大致思路:打开Chrome浏览器,访问百度网址,获取网址的title,然后再关闭Chrome浏览器。根据思路进行代码设计,如下图所示:

3.参考代码,如下:
package lessons; import java.util.concurrent.TimeUnit; import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver; /**
* @author 北京-宏哥
*
* 2021年6月17日
*/
public class LaunchChrome { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe"); //初始化一个chrome浏览器实例,实例名称叫driver
WebDriver driver = new ChromeDriver();
//最大化窗口
driver.manage().window().maximize();
//设置隐性等待时间
driver.manage().timeouts().implicitlyWait(8, TimeUnit.SECONDS); // get()打开一个站点
driver.get("https://www.baidu.com");
//getTitle()获取当前页面title的值
System.out.println("当前打开页面的标题是: "+ driver.getTitle()); //关闭并退出浏览器
driver.quit(); } }
4.电脑端的浏览器,如下小视频所示:
5.运行代码,右键Run AS->java Application,控制台输出,如下图所示:

4.启动Firefox浏览器
4.1Firefox和驱动下载地址
selenium2.X最高支持的Firefox版本为46,使用selenium2.X的话不需要下载火狐驱动,只需要配置火狐的启动路径即可。
Selenium3.0开始需下载geckodriver,想使用geckodriver ,Firefox浏览器必须是48或者更高版本。具体的浏览器和浏览器驱动之间的对应关系可在geckodriver下载网站中的版本说明中查看。
所有火狐浏览器版本下载地址:http://ftp.mozilla.org/pub/firefox/releases/
所有火狐驱动geckodriver版本下载地址:https://github.com/mozilla/geckodriver/releases
4.2驱动Firefox
具体过程和Chrome的差不多,宏哥就不做赘述,将代码贴出来以供参考。
1.参考代码,如下:
package lessons; import java.util.concurrent.TimeUnit; import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver; /**
* @author 北京-宏哥
*
* 2021年6月17日
*/
public class LuanchFirefox { public static void main(String[] args) { //System.setProperty("webdriver.firefox.marionette", ".\\Tools\\geckodriver.exe"); System.setProperty("webdriver.gecko.driver", ".\\Tools\\geckodriver.exe"); //初始化一个火狐浏览器实例,实例名称叫driver
WebDriver driver = new FirefoxDriver();
//最大化窗口
driver.manage().window().maximize();
//设置隐性等待时间
driver.manage().timeouts().implicitlyWait(8, TimeUnit.SECONDS); // get()打开一个站点
driver.get("https://www.baidu.com");
//getTitle()获取当前页面title的值
System.out.println("当前打开页面的标题是: "+ driver.getTitle()); //关闭并退出浏览器
driver.quit(); } }
5.启动IE浏览器
5.1IE浏览器驱动下载地址
本人使用的IE和IEDriverServer:
IE浏览器版本:11 IEDriverServer版本:Win32_3.0.0
IE浏览器所有驱动版本下载地址:http://selenium-release.storage.googleapis.com/index.html
5.2驱动IE
具体过程和Chrome的差不多,宏哥就不做赘述,将代码贴出来以供参考。
1.参考代码,如下:
package lessons; import java.util.concurrent.TimeUnit; import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver; /**
* @author 北京-宏哥
*
* 2021年6月17日
*/
public class LaunchIE { public static void main(String[] args) { System.setProperty("webdriver.ie.driver", ".\\Tools\\IEDriverServer.exe"); //初始化一个IE浏览器实例,实例名称叫driver
WebDriver driver = new InternetExplorerDriver();
//最大化窗口
driver.manage().window().maximize();
//设置隐性等待时间
driver.manage().timeouts().implicitlyWait(8, TimeUnit.SECONDS); // get()打开一个站点
driver.get("https://www.baidu.com");
//getTitle()获取当前页面title的值
System.out.println("当前打开页面的标题是: "+ driver.getTitle()); //关闭并退出浏览器
driver.quit(); } }
6.小结
宏哥因为之前做过python和selenium,所以没有出现浏览器版本和驱动版本匹配的问题,新手一定要注意这个问题。
好了,今天关于三大浏览器的驱动宏哥就分享到这里,感谢你耐心的阅读。
《手把手教你》系列基础篇之(三)-java+ selenium自动化测试- 启动三大浏览器(上)(详细教程)的更多相关文章
- 《手把手教你》系列基础篇之(四)-java+ selenium自动化测试- 启动三大浏览器(下)基于Maven(详细教程)
1.简介 上一篇文章,宏哥已经在搭建的java项目环境中实践了,今天就在基于maven项目的环境中给小伙伴们 或者童鞋们演示一下. 2.eclipse中新建maven项目 1.依次点击eclipse的 ...
- 《手把手教你》系列技巧篇(五十九)-java+ selenium自动化测试 - 截图三剑客 -上篇(详细教程)
1.简介 今天本来是要介绍远程测试的相关内容的,但是宏哥在操作服务器的时候干了件糊涂的事,事情经过是这样的:本来申请好的Windows服务器用来做演示的,可是服务器可能是局域网的,连百度都不能访问,宏 ...
- 《手把手教你》系列技巧篇(六十一)-java+ selenium自动化测试 - 截图三剑客 -下篇(详细教程)
1.简介 按照计划宏哥今天将介绍java+ selenium自动化测试截图操作实现的第三种截图方法,也就是截图的第三剑客 - 截取某个元素(或者目标区域)的图片.在测试的过程中,有时候不需要截取整个屏 ...
- 《手把手教你》系列技巧篇(五十二)-java+ selenium自动化测试-处理面包屑(详细教程)
1.简介 面包屑(Breadcrumb),又称面包屑导航(BreadcrumbNavigation)这个概念来自童话故事"汉赛尔和格莱特",当汉赛尔和格莱特穿过森林时,不小心迷路了 ...
- 《手把手教你》系列技巧篇(五十六)-java+ selenium自动化测试-下载文件-上篇(详细教程)
1.简介 前边几篇文章讲解完如何上传文件,既然有上传,那么就可能会有下载文件.因此宏哥就接着讲解和分享一下:自动化测试下载文件.可能有的小伙伴或者童鞋们会觉得这不是很简单吗,还用你介绍和讲解啊,不说就 ...
- 《手把手教你》系列技巧篇(五十七)-java+ selenium自动化测试-下载文件-下篇(详细教程)
1.简介 前边几篇文章讲解完如何上传文件,既然有上传,那么就可能会有下载文件.因此宏哥就接着讲解和分享一下:自动化测试下载文件.可能有的小伙伴或者童鞋们会觉得这不是很简单吗,还用你介绍和讲解啊,不说就 ...
- 《手把手教你》系列技巧篇(六十)-java+ selenium自动化测试 - 截图三剑客 -中篇(详细教程)
1.简介 前面我们介绍了Selenium中TakeScreenshot类来截图,得到的图片是浏览器窗口内的截图.有时候,只截浏览器窗口内的图是不够的,而且TakeScreenshot截图只针对浏览器的 ...
- 《手把手教你》系列技巧篇(六十九)-java+ selenium自动化测试 - 读取csv文件(详细教程)
1.简介 在实际测试中,我们不仅需要读取Excle,而且有时候还需要读取CSV类的文件.如何去读取CSV的文件,宏哥今天就讲解和分享一下,希望对你能够有所帮助.前面介绍了如何读取excel文件,本篇介 ...
- 《手把手教你》系列技巧篇(二十三)-java+ selenium自动化测试-webdriver处理浏览器多窗口切换下卷(详细教程)
1.简介 上一篇讲解和分享了如何获取浏览器窗口的句柄,那么今天这一篇就是讲解获取后我们要做什么,就是利用获取的句柄进行浏览器窗口的切换来分别定位不同页面中的元素进行操作. 2.为什么要切换窗口? Se ...
随机推荐
- Nginx超详细常用功能演示,够用啦~~~
前言 Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服 ...
- 腾讯云原生混合云-第三方集群弹EKS应对突发流量的利器
作者 何鹏飞,腾讯云专家产品经理,曾作为容器私有云.TKEStack的产品经理兼架构师,参与腾讯云内部业务.外部客户容器化改造方案设计,目前负责云原生混合云产品方案设计工作. 胡晓亮,腾讯云专家工程师 ...
- 发布声明$\beta$
一.新功能 \(\beta\)阶段集中开发了3大核心功能:支持模块的嵌套.模型市场.模型推理,这三项基本上都是从零开始.徒手开发的功能,没有轮子可以参照,因此也不具有可以对比的先前版本. 除此之外,开 ...
- 【转载】CentOS 7自动以root身份登录gnome桌面 操作系统开机后自动登录到桌面 跳过GDM
CentOS 7自动以root身份登录gnome桌面 ################### #cd /etc/gdm ]# cat custom.conf# GDM configuration st ...
- Linux中级之ansible配置(playbook)
一.playbooks 如果用模块形式一般有幂等性,如果用shell或者command没有幂等性 playbooks相当于是shell脚本,可以把要执行的任务写到文件当中,一次执行,方便调用 task ...
- STM32 keil中编译遇到的问题
发现 移植的SPI程序 说里面的 SPI_InitTypeDef 所有有关 SPI库函数的都找不到 这是因为 用的是 原子的程序 在 config函数中 把这个注释了
- SPI认识
SPI分为好几种模式 不同模式下 读取数据时 SCK线的状态不一样 STM32硬件SPI 有16BIT 8BIT的两种模式 既 收发都是8或16bit SPI缺少响应反馈机制 无法知道 ...
- 大对象数据LOB的应用(Day_10)
当你有永不放弃的精神,全力以赴的态度,你会惊叹自己也能创造奇迹! LOB数据类型概述 由于于无结构的数据往往都是大型的,存储量非常大,而LOB(large object)类型主要用来支持无结构的大型数 ...
- 学完了这篇JVM,面试官真拿我没办法了!
在我们面试中经常会遇到面试官问一些有关JVM的问题,下面我大概从运行时数据域.类加载机制.类加载器.垃圾收集器.垃圾收集算法.JVM堆内存模型.JVM内存结构.JVM调优等几个方面来讲一下JVM. 一 ...
- .NET Core HttpClient请求异常详细情况分析
前言 最近项目上每天间断性捕获到HttpClient请求异常,感觉有点奇怪,于是乎观察了两三天,通过日志以及对接方沟通确认等等,查看对应版本源码,尝试添加部分配置发布后,观察十几小时暂无异常情况出现, ...