一、环境:
软件:idea+java+maven
selenium版本:3.14.0
java版本:jdk1.8
chrome版本:80.0.3987.122
chromedriver版本:80.0.3987.106
firefox版本:55.0
geckodriver版本:0.19.0
二、软件下载
1、下载安装jdk
jdk1.8下载地址:
https://www.oracle.com/java/technologies/javase-jdk8-downloads.html
下载步骤,Java SE Development Kit 8u241
选择windows版本下载,我电脑是64位系统,所以我下载jdk-8u241-windows-x64.exe版本
下载后安装,一路‘下一步’,OK。安装完成后配置环境变量:
(1)打开环境变量配置。计算机→属性→高级系统设置→高级→环境变量,在系统变量中配置。
(2)配置JAVA_HOME。新建,变量名JAVA_HOME,变量值,jdk路径,我的路径是D:\Java\jdk1.8.0_241,保存。
(3)配置CLASSPATH。新建,变量名CLASSPATH,变量值,.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(第一个分号前前面有一个点)。
(4)配置Path。打开Path变量,在变量值最前加入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
(5)验证
运行cmd,输入java -version,显示java版本则成功。
2、安装maven
(1)maven下载:http://maven.apache.org/download.cgi
(2)配置环境变量:
在系统变量内添加环境变量 MAVEN_HOME,值为解压后的目录
在系统变量path中添加%MAVEN_HOME%\bin
win+R,运行cmd命令行 mvn -v 检查是否安装成功,即如下图表示成功
(3)settings 配置
在 apache-maven-3.6.3→conf→settings.xml 中配置
<localRepository>D:\maven\MavenRepository</localRepository>
阿里镜像(下载依赖速度会快很多)
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
3、chrome镜像
(1)chrome历史版本:https://www.chromedownloads.net/
我chrome是 80.0.3987.122
(2)下载chromedriver驱动:http://npm.taobao.org/mirrors/chromedriver/
http://chromedriver.storage.googleapis.com/index.html
我chromedriver是 80.0.3987.106
如果需要看到最新版的chrome和chromedriver版本对应,点击最新版本的chromedrives,查看notes.txt,就可以获得最新的版本对应表。
---------ChromeDriver 80.0.3987.106 (2020-02-13)---------
Supports Chrome version 80
Resolved issue 3155: Load page was aborted when using a proxy (v.77/78). [Pri-2]
Resolved issue 3164: Chromedriver version 77 doesn`t wait for page to fully load before interacting with an element [Pri-2]
Resolved issue 3179: ChromeDriver log should include the port used by the driver [Pri-2]
Resolved issue 3180: Enable SetGeoLocation for w3c mode [Pri-]
Resolved issue 3184: UnexpectedAlertOpen status should always include Alert text [Pri-3]
Resolved issue 3188: Improve message when CRX2 Extension is loaded [Pri-2]
Resolved issue 3196: ChromeDriver 78 race condition in ExecuteGetPageSource may result in JavascriptException [Pri-2]
Resolved issue 3226: add --ignore-certificate-errors flag when acceptInsecureCerts true [Pri-2]
Resolved issue 3230: Update error message and return status for no such execution context [Pri-2]
Resolved issue 3239: ChromeDriver may block indefinitely while waiting for pending navigation [Pri-2]
Resolved issue 3264: Allow setting SameSite cookie attribute [Pri-]
Resolved issue 3336: WebDriver 80.0.3987.16 can't open Chrome on Linux [Pri-1]
4、firefox镜像
(1)下载firefox历史版本 http://ftp.mozilla.org/pub/firefox/releases/
我下载的firefox版本是 55.0,较高版本不支持FireBug和FirePath
设置firefox不再更新
安装之后打开火狐浏览器的安装目录,找到firefox的快捷方式,右键 -> 属性 -> 打开文件所在位置 (须安装在C盘,否则做自动化脚本时报错)
打开浏览器的安装目录之后,找到并打开一个defaults的文件夹
打开defaults文件夹之后,看到一个pref的文件夹。打开后有一个channel-prefs.js的文件并打开
把"release"去掉,显示如下
pref("app.update.channel", "");
再次打开火狐浏览器查看版本号,就不会再更新了。
(2)下载geckodriver驱动:https://github.com/mozilla/geckodriver/releases
我下载的geckodriver是 0.19.0
下载firefox对应geckodriver最好看下官方文档说明
三、IDEA搭建Maven项目
(1)配置maven
File —> settings —> 搜索 maven
(2)创建一个 maven 项目,点击File – New – project
点击Next
点击Finish就创建了maven项目
(3)pom.xml导入依赖
maven下载:https://mvnrepository.com/
搜索selenium,如下图
<!--selenium-->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.14.0</version>
</dependency>
<!--testng-->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.9.9</version>
</dependency>
(4)代码
package com.selenium.demo;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class TestSelenium {
public WebDriver driver;
@BeforeMethod
public void open() {
//设置chromedriver路径
System.setProperty("webdriver.chrome.driver","D:\\chromedriver.exe");
//实例化chromedriver
driver = new ChromeDriver();
//设置geckodriver路径
// System.setProperty("webdriver.gecko.driver","D:\\geckodriver.exe");
//实例化firefoxdriver
// driver = new FirefoxDriver();
//浏览器最大化
driver.manage().window().maximize();
}
@Test
public void getTest() throws InterruptedException {
//打开百度首页
driver.get("http://www.baidu.com");
//等待2s
Thread.sleep(2000);
//找到id为 kw的元素
WebElement element = driver.findElement(By.id("kw"));
//输入selenium
element.sendKeys("selenium");
//点击按钮
driver.findElement(By.id("su")).click();
}
@AfterMethod
public void close(){
//关闭浏览器
driver.quit();
}
}
直接右键点击执行即可:
chrome运行结果如下:
firefox运行结果如下: