12_java + selenium + testng实现简单的UI自动化

新建Maven项目,添加需要的依赖

1、新建一个Maven项目
2、在pom.xml中添加需要的依赖,这里只要selenium和testng就行

<!-- https://mvnrepository.com -->
<dependencies>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.4.0</version>
    </dependency>

    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.8.8</version>
        <scope>test</scope>
    </dependency>

</dependencies>

可以在https://mvnrepository.com里面搜索需要的库,选择版本,复制其依赖信息
在这里插入图片描述

配置浏览器并获取一个句柄

1、 新建一个Brower.java,配置浏览器设置,创建一个FirefoxDriver实例

package com.test.testng;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;

import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;

/**
* @Author chunmei deng
* @Description 配置浏览器设置
* @Date 2021/3/21
*/
public class Brower {
    WebDriver driver;

    public WebDriver firefox(){
        String webDriverPath = "/Users/dengchunmei/WebDriver/geckodriver29";
        String firefoxPath = "/Applications/Firefox.app/Contents/MacOS/firefox";
        //关掉火狐浏览器的日志
        System.setProperty(FirefoxDriver.SystemProperty.BROWSER_LOGFILE,"/dev/null");
        System.setProperty("webdriver.gecko.driver",webDriverPath);
        System.setProperty("webdriver.firefox.bin",firefoxPath);

        FirefoxOptions options = new FirefoxOptions();
        options.addArguments("--start-maximized"); // 启动时自动最大化窗口
        options.addArguments("--disable-popup-blocking"); // 禁用阻止弹出窗口
        options.addArguments("no-sandbox"); // 启动无沙盒模式运行
        options.addArguments("disable-extensions"); // 禁用扩展
        options.addArguments("no-default-browser-check"); // 默认浏览器检查
        Map<String, Object> prefs = new HashMap();
        prefs.put("credentials_enable_service", false);
        prefs.put("profile.password_manager_enabled", false);
        //options.setExperimentalOption("prefs", prefs);// 禁用保存密码提示框

        driver = new FirefoxDriver(options);
        //设置寻找一个元素的时间
        driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);

        return driver;
    }
}

**注:chromdriver与浏览器版本对照表参照:**https://blog.csdn.net/huilan_same/article/details/51896672

打开网址,定位页面元素并操作

1、新建一个TestDemo.java,初始化方法标记@BeforeTest注解,结束处理标记@AfterTest,测试对象方法标记@Test,其中使用@Parameters(“searchWord”)指定所传参数值来源于TestNG.xml中所配置

package com.test.testng;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

/**
* @Author chunmei deng
* @Description 测试Demo
* @Date 2021/3/21
*/
public class TestDemo {
    WebDriver driver;

    @BeforeTest
    public void init() {
        String url = "http://www.baidu.com";

        //新建一个浏览器句柄
        driver = new Brower().firefox();
        //driver = (WebDriver) new FirefoxDriver();
        //打开URL
        driver.get(url);
    }

    @Test
    @Parameters("searchWord")
    public void search(String searchWord) throws InterruptedException {
        //输入搜索字符串
        driver.findElement(By.xpath("//*[@id=\"kw\"]")).sendKeys(searchWord);
        //点击[百度一下]按钮
        driver.findElement(By.xpath("//*[@id=\"su\"]")).click();
        Thread.sleep(2000);
    }

    @AfterTest
    public void teardown() {
        driver.quit();
    }

}

新建TestNG.xml并配置测试

1、内容如下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Test Of TestNG">

    <test verbose="2" name="百度搜索">
        <parameter name="searchWord" value=“淘宝" />

        <classes>
            <class name="com.test.testng.TestDemo">
                <methods>
                    <include name="search" />
                </methods>
            </class>
        </classes>
    </test>

</suite>

运行程序

1、运行TestNG.xml
在这里插入图片描述
2、运行效果如下
在这里插入图片描述
生成测试报告

1、运行配置中,勾选Use default reporters,则运行结果会自动生成报告
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

春暖花开dcm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值