java自动化测试脚本怎么写?java selenium教程来了!

2021-06-08 15:19:20 浏览数 (7531)

很多想要做软件测试的小伙伴们可能会被 python 自动化测试多好多好,自动化测试必须学 python 这种话给误导。其实,自动化测试并不一定要会使用 python,因为 python 最强大的自动化测试框架之一——Selenium 也可以使用 java 进行脚本编写,那么 java 自动化测试脚本怎么写呢?且听小编娓娓道来。

阅前须知:

建议初学者们先系统地学习完java编程课再进行该框架的学习:

Java开发课程

Selenium配置可以参考这篇文章:selenium—自动化测试利器的安装配置

创建webdriver对象

使用如下代码,创建一个webdriver对象,才能进行接下来的操作。

WebDriver driver = new ChromeDriver();

从定位元素开始

Selenium 有八种定位方式,分别为 id 定位,name 定位,class 定位,tag 定位,link 定位,partial 定位,css 定位和 Xpath 定位,其中 Xpath 定位使用比较广泛,小编接下来使用 Xpath 定位进行演示:

driver.findElement(By.xpath("//*[@id='nav']/div/ul/li[2]")).click();

driver 下面有 ​findElement()​ 方法可以获取一个 html 元素,获取到这个元素后可以使用 ​click()​ 方法点击这个元素。​findElement()​ 方法里面可以使用 ​By.xpath()​  进行 Xpath 的选择。关于 Xpath 的教程可以参考:Xpath教程

浏览器控制

//最大化窗口
driver.manage().window().maximize();
//控制页面后退
driver.navigate().back();
//控制浏览器前进
driver.navigate().forward();
//控制页面刷新
driver.navigate().refresh();
//跳转到指定页面
driver.get("https://www.w3cschool.cn/tutorial");

鼠标事件

WebElement search_setting = driver.findElement(By.xpath("//*[@id='u']/a[2]"));
//使用Xpath定位到百度搜索页面的设置按钮
Actions action = new Actions(driver);//新建一个action对象
action.clickAndHold(search_setting).perform();//使用action对象的clickAndHold可以实现在目标上进行悬停操作

//一定要加perform()才能执行代码 action.contextClick(search_setting).perform();//鼠标右键点击目标对象 action.doubleClick(search_setting).perform();//鼠标双击目标对象

键盘事件

WebElement search_text = driver.findElement(By.id("kw"));
//定义一个webelement元素名为search_text与页面id为kw的元素进行挂钩
search_text.sendKeys("Java");
//使用search的sendkeys向与其挂钩的元素发送字符串“java”
search_text.clear();
//清空这个元素的模拟文本

等待

try {
    Thread.sleep(2000);//使用sleep方法可以暂时挂起线程,但必须要用try-catch语句包裹
} catch (InterruptedException e) {
    e.printStackTrace();
}

上述代码合成:

import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;

public class test {
    public static void main(String[] args) {
        /**如果报错说找不到Chromedriver的话(即驱动没有配进环境变量),就使用如下代码
         * System.setProperty("webdriver.chrome.driver", "Chromedriver的驱动路径");
         */
        //创建一个webdriver对象
        WebDriver driver = new ChromeDriver();
        //使用webdriver对象访问w3Cschool
        driver.get("https://www.w3cschool.cn/");
        //使用Xpath方法获取页面上一个元素的定位,使用click方法为点击这个元素
        driver.findElement(By.xpath("//*[@id='nav']/div/ul/li[2]")).click();

        driver.manage().window().maximize();//最大化窗口

        driver.navigate().back();//控制页面后退

        driver.navigate().forward();//控制浏览器前进

        driver.navigate().refresh();//控制页面刷新

        driver.get("https://www.baidu.com/");//跳转到百度

        WebElement search_text = driver.findElement(By.id("kw"));
        //定义一个webelement元素名为search_text与页面id为kw的元素进行挂钩
        search_text.sendKeys("W3Cschool");
        try {
            Thread.sleep(2000);//使用sleep方法可以暂时挂起线程,但必须要用try-catch语句包裹
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        //使用search的sendkeys向与其挂钩的元素发送字符串“java”
        search_text.clear();
        //清空这个元素的模拟文本

        WebElement search_setting = driver.findElement(By.xpath("//*[@id='u']/a[2]"));
        //使用Xpath定位到百度搜索页面的设置按钮
        Actions action = new Actions(driver);//新建一个action对象
        action.clickAndHold(search_setting).perform();//使用action对象的clickAndHold可以实现在目标上进行悬停操作
        //一定要加perform()才能执行代码
        action.contextClick(search_setting).perform();//鼠标右键点击目标对象
        action.doubleClick(search_setting).perform();//鼠标双击目标对象

        driver.quit();//关闭浏览器对象
    }
}

小结

掌握了以上的操作,就算是基本入门 selenium 了。由于篇幅原因,小编只能简单地挑一些比较简单的 selenium 的基础操作进行讲解,后续小编还会继续介绍该框架,希望各位看官大大多多捧场。