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

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,所以没有出现浏览器版本和驱动版本匹配的问题,新手一定要注意这个问题。

 

http://www.xdnf.cn/news/7244.html

相关文章:

  • 1.portainer
  • Unity editor文件数UI(支持勾选框)
  • 从 Word2Vec 到 BERT:AI 不止是词向量,更是语言理解
  • 带你搞懂@Valid和@Validated的区别
  • 【Go】从0开始学习Go
  • 【成品设计】基于Arduino的自动化农业灌溉系统
  • 基于DeepSeek的智能客服系统实践与创新
  • 【硬核数学】2. AI如何“学习”?微积分揭秘模型优化的奥秘《从零构建机器学习、深度学习到LLM的数学认知》
  • Java线程:多任务进行
  • 鸿蒙 Location Kit(位置服务)
  • 蓝桥杯1447 砝码称重
  • Flink 快速入门
  • 【LeetCode】大厂面试算法真题回忆(93)--优雅数组
  • 几种数据加密方法
  • 践行“科学智能”!和鲸打造 AI for Science 专属应用
  • docker安装Prometheus+Grafana
  • python如何遍历postgresql所有的用户表
  • OpenHarmony外设驱动使用 (五),Fingerprint_auth
  • ubuntu22.04 卸载ESP-IDF
  • AIGC与数字金融:人工智能金融创新的新纪元
  • [Java][Leetcode middle] 151. 反转字符串中的单词
  • Dify-3:系统架构
  • 国产 iPaaS 与国外 iPaaS 产品相比如何?以谷云科技为例
  • HTML向四周扩散背景
  • Linux-进程间通信
  • Redis有哪些常用应用场景?
  • Kubernetes MCP服务器(K8s MCP):如何使用?
  • upload-labs通关笔记-第12关 文件上传之白名单GET法
  • 【Unity 2023 新版InputSystem系统】新版InputSystem 如何进行人物移动(包括配置、代码详细实现过程)
  • 【软考-架构】15、软件架构的演化和维护