本文使用到了Selenium的Java版WebDriver、Chrome浏览器驱动。前者为一个Java类库,提供了测试有关的各种API,项目中使用了Maven来导入其Jar包;后者是一个二进制的可执行文件,用于完成对浏览器的操控,在代码中指定了其文件路径。
阅读和尝试运行本文中的例子,需要一些Java基础,如搭建基础开发环境、使用Maven下载Java依赖包、JUnit单元测试框架等,这些我们可在后续的编程语言的课程中给大家介绍。
- 从官网下载并安装IntelliJ Idea社区版(Community)的Java IDE;
执行以下命令,从Gitee代码仓库获取演示项目的源代码;
git clone https://gitee.com/ngtesting/ci_test_selenium_simple
- 查看电脑上Chrome浏览器的版本,从这里下载对应的驱动,解压到本地目录;
- 在Idea中打开项目,找到src/test/java目录下的SeleniumTest.java文件;
- 注意前面录制的代码中,使用System.setProperty指定了驱动可执行文件所在的路径;
- 在项目根目录中,执行mvn compile命令,下载Selenium、JUnit等依赖项Jar包;
- 右击SeleniumTest.java测试类文件,选择Debug菜单项,执行JUnit单元测试。
这里给出完整的Java代码文件,其他语言的例子,请参照Selenium官方示例。
package com.deeptest.sample.selenium;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import java.util.*;
public class SeleniumTest {
public static String driverPath = "/Users/aaron/driver/chromedriver";
// 类级别的变量
private WebDriver driver;
private Map<String, Object> vars;
JavascriptExecutor js;
// 使用JUnit的@Before注解,定义在测试执行前,需执行的初始化行为。
@Before
public void setUp() {
// 初始化WebDriver对象
ChromeOptions options = new ChromeOptions();
// 指定Chrome驱动的文件路径
System.setProperty("webdriver.chrome.driver", driverPath);
driver = new ChromeDriver(options);
// 初始化JS执行器对象,用于在浏览器中执行Javascript代码。
js = (JavascriptExecutor) driver;
}
// 使用JUnit的@After注解,定义在测试完成后,需执行的清理动作。
@After
public void tearDown() {
// 退出并清理WebDriver对象
driver.quit();
}
// 使用JUnit的@Test注解,标注此方法为一个测试方法。
@Test
public void test1() {
// 打开百度网站首页
driver.get("https://www.baidu.com/");
// 设置浏览器窗口大小为1440x875
driver.manage().window().setSize(new Dimension(1440, 875));
// 找到id为kw的(文本框)控件,在里面输入“禅道”文字。
driver.findElement(By.id("kw")).sendKeys("禅道");
// 找到id为su的(按钮)控件,并点击。
driver.findElement(By.id("su")).click();
// 找到指定内容的链接,并点击。
driver.findElement(By.partialLinkText("开源项目管理软件")).click();
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。