前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java + selenium + testng实现简单的UI自动化

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

作者头像
未来sky
发布2018-08-30 14:36:21
7.9K0
发布2018-08-30 14:36:21
举报
文章被收录于专栏:好好学习吧好好学习吧

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

1、新建一个Maven项目

2、在pom.xml中添加需要的依赖,这里只要selenium和testng就行

代码语言:javascript
复制
    <!-- 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,配置浏览器设置,创建一个ChromeDriver实例

代码语言:javascript
复制
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

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

/**
 * @Author: xinyi
 * @Description:
 * @Date: Created In 17:30 2018/8/2
 * @Modified By:
 */

public class Brower {
    WebDriver driver;

    public WebDriver chrome() {
        String webDriverPath =  "Q:\\testskill\\web_auto\\chromedriver.exe";
        System.setProperty("webdriver.chrome.driver",webDriverPath);

        ChromeOptions options = new ChromeOptions();
        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 ChromeDriver(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中所配置

代码语言:javascript
复制
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

import java.util.concurrent.TimeUnit;

/**
 * @Author: xinyi
 * @Description:
 * @Date: Created In 9:11 2018/8/3
 * @Modified By:
 */
public class TestDemo {
    WebDriver driver;

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

        //新建一个浏览器句柄
        driver = new Brower().chrome();
        //打开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、内容如下

代码语言:javascript
复制
<?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="TestDemo">
                <methods>
                    <include name="search" />
                </methods>
            </class>
        </classes>
    </test>

</suite>

运行程序

1、运行TestNG.xml

2、运行后,会启动浏览器,遇到如下提示,阻断程序

停止WinDefend服务后依然不行,百度找到了一个解决方法,如下:

3、还有一个问题,浏览器退出后,进程中chromedrive.exe仍存在,没有被关闭,当执行很多次程序时,就会造成系统卡顿了

解决方案参考 https://blog.csdn.net/cainiaofeitian/article/details/69389814

4、运行效果如下

生成测试报告

1、运行配置中,勾选Use default reporters,则运行结果会自动生成报告

 2、也可使用ReportNG报告,参考:https://cloud.tencent.com/developer/article/1199200

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-08-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 新建Maven项目,添加需要的依赖
  • 配置浏览器并获取一个句柄
  • 打开网址,定位页面元素并操作
  • 新建TestNG.xml并配置测试
  • 运行程序
  • 生成测试报告
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档