什么是selenium?
selenium是一个用于web应用程序的自动化测试工具也可说是框架,可以直接运行在浏览器,就行用户真正的在浏览器操作一样,特点是支持各种浏览器,支持各种操作系统,支持各种编程语言,有丰富的API |
selenium的工作原理(重要)
其实和jdbc类似,selenium提供了webdriver接口,里面定义了一组通用的方法来控制浏览器,当我们执行自动化脚本,通过webdriver接口与浏览器交互,具体的实现通过浏览器驱动程序处理,驱动程序与浏览器的原生API通信来执行操作,就类似你追一个女生,先和它的闺蜜熟悉后再通过它闺蜜和你喜欢的女生才有了后续的接触
浏览器的驱动
每个浏览器都有自己的驱动,均以exe文件形式存在,比如谷歌的chromedriver.exe、火狐的geckodriver.exe、IE的IEDriverServer.exe,它来解析这些自动化测试的代码,解析后把它们发送给浏览器;这些驱动程序是对WebDriver接口的具体实现
环境搭建
接下来来演示如何使用selenium来完成我们的自动化测试
1.先下载对应的浏览器驱动,我这里下载的是chrome浏览器驱动,注意下载的时候要和你的浏览器版本一致,如果要下载的和我一样,这里附上chrome浏览器下载链接和驱动下载链接
chrome浏览器下载链接:https://www.google.cn/intl/zh-CN/chrome
chrome浏览器驱动下载链接:https://chromedriver.chromium.org/downloads
2.解压下载好的驱动压缩包,将下载好的chromedriver.exe放到chrome浏览器安装路径下(如果是edge浏览器驱动那就将对应驱动放到edge浏览器安装路径下),还要把你这个安装路径例如:C:\Program Files\Google\Chrome\Application配置到系统环境变量找到path
3.新建java文件,注意选择maven
4.创建好后把依赖导进来,这里使用java代码进行演示
<!-- 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.接着使用下面这段代码,然后启动程序,如果是下面这样就成功了
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Main {
public static void main(String[] args) {
WebDriver webDriver = new ChromeDriver();
webDriver.get("https://www.baidu.com");
}
}
如果不成功的话使用下面这段代码,其他情况的话看看是不是浏览器驱动版本和你的浏览器版本不对应或者浏览器驱动没有配置到系统变量下,实在不行再试试把浏览器驱动放到你jdk的bin文件下
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
public class Main {
public static void main(String[] args) {
//手动指定chromedriver.exe所在路径
System.setProperty("webdriver.chrome.driver", "C:\\Program Files\\Java\\jdk1.8.0_191\\bin\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
//允许所有请求
options.addArguments("--remote-allow-origins=*");
//创建驱动对象
WebDriver webDriver = new ChromeDriver(options);
webDriver.get("https://www.baidu.com");
}
}