测试开发之自动化篇-使用Selenium Driver实现脚本

陈琦
English

本文使用到了Selenium的Java版WebDriver、Chrome浏览器驱动。前者为一个Java类库,提供了测试有关的各种API,项目中使用了Maven来导入其Jar包;后者是一个二进制的可执行文件,用于完成对浏览器的操控,在代码中指定了其文件路径。

阅读和尝试运行本文中的例子,需要一些Java基础,如搭建基础开发环境、使用Maven下载Java依赖包、JUnit单元测试框架等,这些我们可在后续的编程语言的课程中给大家介绍。

  1. 官网下载并安装IntelliJ Idea社区版(Community)的Java IDE;
  2. 执行以下命令,从Gitee代码仓库获取演示项目的源代码;

    git clone https://gitee.com/ngtesting/ci_test_selenium_simple
  3. 查看电脑上Chrome浏览器的版本,从这里下载对应的驱动,解压到本地目录;
  4. 在Idea中打开项目,找到src/test/java目录下的SeleniumTest.java文件;
  5. 注意前面录制的代码中,使用System.setProperty指定了驱动可执行文件所在的路径;
    image.png
  6. 在项目根目录中,执行mvn compile命令,下载Selenium、JUnit等依赖项Jar包;
  7. 右击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();
    }

}

专题目录

阅读 1.3k

资深敏捷测试顾问,开源软件作者。国内知名项目管理软件—禅道团队成员。

144 声望
3.3k 粉丝
0 条评论

资深敏捷测试顾问,开源软件作者。国内知名项目管理软件—禅道团队成员。

144 声望
3.3k 粉丝
文章目录
宣传栏