当前位置: 首页 > news >正文

java+selenium专题->启动浏览器下篇

1.简介

上一篇文章,我们已经在搭建的java项目环境中实践了,今天就在基于maven项目的环境中演示一下。

2.eclipse中新建maven项目

1.依次点击eclipse的file - new - other ,如下图所示:

 2.在搜索框输入关键字“maven”,然后选中“maven project”,如下图所示:

 3.选择创建后的工作区——项目存放的地址。如下图所示:

 4.选择Maven项目的模板也叫项目类型(quikstart或者webapp等等),,如果选择create a simple project,则跳过了下面的步骤,也就不存在这个问题了,但是如果需要选择项目类型,则不能勾选create a simple project)如下图所示:

 5.我为了省事,直接选中create a simple project,点击next,输入Group Id和Artifact Id。如下图所示:

 6.点击“Finish”,查看新建的maven项目,如下图所示:

 

到此,创建maven项目成功!!!

3.maven项目加载selenium依赖

3.1加载selenium依赖

maven项目加载selenium依赖就不想上一篇java项目加载selenium那么费事需要把jar包复制到项目下,maven项目只需要将相关的jar包依赖配置到pom.xml文件中就会自动加载了。因此要给上面创建的maven项目中加载selenium依赖,只需在pom.xml中引入selenium的jar包即可;具体步骤如下:

1.查看maven仓库:http://mvnrepository.com/   如下图所示:

2.搜索selenium, 输入selenium,点击“Search”,如下图所示:

 

3.点击selenium java,查看自己需要的selenium版本,selenium我们都会选择最新的(宏哥这里用3.141.59举例一下),方便兼容最新的浏览器以及网络攻略……。如下图所示:

 

4.下载selenium-3.141.59版本,点3.141.59进入页面后,只需要单击下边的编码就自动全选复制了。如下图所示:

 

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>3.141.59</version>
</dependency>

5.copy到maven项目中的pom.xml中, selenium的jar包maven会自动加载,从右边路径可以看到jar的路径在本地仓库。如下图所示:

需要其他的jar包只需配置到pom.xml中即可!

3.2修改jdk版本

1.右键JRE System Library[JavaSe-1.5] ->properties。如下图所示:

2.选择javaSE-1.8,如下图所示:

 

4.启动Chrome浏览器

4.1chrome和chromedriver版本下载地址及对应关系

【国外】chromedriver所有版本下载地址:http://chromedriver.storage.googleapis.com/index.html

【国内】chromedriver所有版本下载地址:https://npm.taobao.org/mirrors/chromedriver

【国内】chrome所有版本下载地址:Google Chrome 64bit Windows版_chrome浏览器,chrome插件,谷歌浏览器下载,谈笑有鸿儒

【国外】浏览器版本和驱动版本对应关系查看网址:http://chromedriver.chromium.org/downloads

注意:一个大的chromedriver版本里面可能包含的有多个小版本,如果下载的Chromedriver版本和当前使用的chrome浏览器版本不匹配则可以换其他的试试。比如:chromedriver  79版里面有v79.0.3945.16    v79.0.3945.36

4.2驱动Chrome

1.在mavenweb/src/main/java下右键创建包(package)lessons,如下图所示:

 

2.在lessons包下创建类LaunchChrome.java,如下图所示:

 

3.在mavenweb下新建Tools文件夹,将用到的驱动和其他工具放在此文件夹中,如下图所示:

 

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

 

5.参考代码,如下:

package lessons;import java.util.concurrent.TimeUnit;  import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;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();  }  }

 6.运行代码后,即可看到打开了电脑端的浏览器:

7.运行代码,右键Run AS->java Application,控制台输出,如下图所示:

5.启动Firefox浏览器

5.1Firefox和驱动下载地址

selenium2.X最高支持的Firefox版本为46,使用selenium2.X的话不需要下载火狐驱动,只需要配置火狐的启动路径即可。

Selenium3.0开始需下载geckodriver,想使用geckodriver ,Firefox浏览器必须是48或者更高版本。具体的浏览器和浏览器驱动之间的对应关系可在geckodriver下载网站中的版本说明中查看。

所有火狐浏览器版本下载地址:Directory Listing: /pub/firefox/releases/
所有火狐驱动geckodriver版本下载地址:Releases · mozilla/geckodriver · GitHub

5.2驱动Firefox

具体过程和Chrome的差不多,宏哥就不做赘述,将代码贴出来以供参考。

1.参考代码,如下:

package lessons;import java.util.concurrent.TimeUnit;  import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;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");//初始化一个火狐浏览器实例,实例名称叫driverWebDriver 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();}}

 启动其他类型的浏览器,基本和上面差不多,就不过多说明

7.小结

因为之前做过python和selenium,所以没有出现浏览器版本和驱动版本匹配的问题,新手一定要注意这个问题。

 

相关文章:

  • 百胜ECOVADIS认证咨询公司,ecovadis评分提升攻略
  • 凸优化理论-进阶方法
  • Vue.js教学第六章:Vue 开发的高效路径,组件化基础
  • AI自动化工作流:开启当下智能生产力的价值
  • 2025 BYUCTF re 部分wp
  • 嵌入式学习笔记 D22:栈与队列
  • 板凳-------Mysql cookbook学习 (四)
  • GPU硬件计数器深度用法:通过NVIDIA Nsight Compute定位隐藏的性能瓶颈——以DRAM访问模式对带宽利用率影响分析为例
  • 第2篇 水滴穿透:IGBT模块的绝对防御体系
  • Python数据可视化初探——“十八般兵器”介绍
  • 嵌入式系统中,检测链路层(物理层)状态变化时,选择中断驱动还是定时轮询
  • 【每天一个知识点】embedding与representation
  • 为什么上传大量大文件推荐是使用 app 应用为不是 web 浏览器下载上传呢?
  • PLC组网的方法、要点及实施全解析
  • 网络传输(ping命令,wget命令,curl命令),端口
  • 代码随想录算法训练营第四十四天
  • 开发体育比分网站,有哪些坑需要注意的
  • 创建型:抽象工厂模式
  • C#:多线程
  • Ubuntu Desktop QEMU/KVM中使用Ubuntu Server 22.04配置k8s集群
  • “敌人已经够多了”,菲总统马科斯:愿与杜特尔特家族和解
  • 一日双赛“莎头组合”赢得强势,但国乒已开始品尝输球滋味
  • 老旧小区加装电梯后续维护谁负责?上海:各区属房管集团托底保障
  • 水果预包装带来的环境成本谁来分担?
  • 中期选举后第三势力成“莎拉弹劾案”关键,菲律宾权斗更趋复杂激烈
  • 淄博一酒店房间内被曝发现摄像头,当地警方已立案调查