1、一个简单的web自动化实例
- 安装驱动管理
WebDriverManager是⼀个开源Java库,以完全⾃动化的⽅式对Selenium WebDriver所需的驱动程序(如chromedriver、geckodriver、msedgedriver等)进⾏管理(即下载、设置和维护),⾃版本5起,WebDriverManager还提供了其他相关功能,如发现本地系统中安装的浏览器的能⼒,构建WebDriver对象(如ChromeDriver、FirefoxDriver、EdgeDriver等)
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>5.8.0</version>
<scope>test</scope>
</dependency>
- 安装selenium库
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.0.0</version>
</dependency>
- 使用selenium编写代码
public class FirstTest {
public void example_test() throws InterruptedException {
//驱动程序管理的⾃动化
WebDriverManager.chromedriver().setup();
ChromeOptions options = new ChromeOptions();
//允许访问所有链接
options.addArguments("--remote-allow-origins=*");
//1、打开浏览器
WebDriver driver = new ChromeDriver(options);
Thread.sleep(1000);
//2.输⼊百度⽹址:https://www.baidu.com
driver.get("https://www.baidu.com");
Thread.sleep(1000);
//3、找到输⼊框并输⼊“迪丽热巴”
driver.findElement(By.xpath("//*[@id=\"kw\"]")).sendKeys("迪丽热巴");
Thread.sleep(1000);
//4、找到“百度⼀下”按钮并点击
driver.findElement(By.xpath("//*[@id=\"su\"]")).click();
Thread.sleep(3000);
//5、关闭浏览器
driver.quit();
}
}
2、selenium+驱动+浏览器的⼯作原理
实现web⾃动化测试需要浏览器、浏览器驱动、selenium⾃动化脚本。这三者是如何交互最终实现web的⾃动化测试?

- 通过selenium编写的⾃动化脚本代码中在ChromeDriverService中创建⼀个服务
- 通过创建好的服务打开webdriver,安装在本地的驱动服务IP为localhost,PORT为ChromeDriverService中创建的端⼝号,该服务地址为selenium向webdriver发送请求的服务地址。
- 向浏览器驱动程序发送HTTP请求,浏览器驱动程序解析请求,打开浏览器,并获得sessionid,如果再次对浏览器操作需携带此id
- 打开浏览器后,所有的selenium的操作(访问地址,查找元素等)均通过创建好的服务链接到webdriver,然后使⽤execute发送请求
- 驱动收到请求并对请求进⾏解析,转成浏览器能够解析的脚本并发送给浏览器,浏览器通过请求的内容执⾏对应动作
- 浏览器再把执⾏的动作结果通过浏览器驱动程序返回给测试脚本
驱动需要接收、解析请求,发送请求给浏览器,那么驱动到底是什么样的⻆⾊呢?
验证⽅式:执⾏selenium编写的⾃动化脚本代码中,可以在终端看到创建的驱动服务地址。
Selenium Web自动化原理解析

3027

被折叠的 条评论
为什么被折叠?



