博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
selenium2 TestNG参数化
阅读量:5148 次
发布时间:2019-06-13

本文共 2322 字,大约阅读时间需要 7 分钟。

想要参数化,首先要加入@Parameters({"参数1","参数2"})

package com.demo.test;import java.util.concurrent.TimeUnit;import org.junit.Assert;import org.openqa.selenium.By;import org.openqa.selenium.TimeoutException;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.firefox.FirefoxDriver;import org.openqa.selenium.support.ui.ExpectedCondition;import org.openqa.selenium.support.ui.WebDriverWait;import org.testng.annotations.AfterTest;import org.testng.annotations.BeforeTest;import org.testng.annotations.Parameters;import org.testng.annotations.Test;public class NewTest {    private WebDriver driver;    @Test    @Parameters({ "keyword" })    // 参数化    public void f(String keyword) {        By inputBox = By.id("kw");        By searchButton = By.id("su");        // 智能等待元素加载完成        intelligentWait(driver, 10, inputBox);        intelligentWait(driver, 10, searchButton);        driver.findElement(inputBox).sendKeys(keyword);        driver.findElement(searchButton).click();        try {            Thread.sleep(5000);        } catch (InterruptedException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }    @BeforeTest    public void beforeTest() {        driver = new FirefoxDriver();        driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);        driver.manage().window().maximize();        driver.get("https://baidu.com");    }    @AfterTest    public void afterTest() {        driver.quit();    }    public void intelligentWait(WebDriver driver, int timeOut, final By by) {        try {            (new WebDriverWait(driver, timeOut))                    .until(new ExpectedCondition
() { public Boolean apply(WebDriver driver) { WebElement element = driver.findElement(by); return element.isDisplayed(); } }); } catch (TimeoutException e) { Assert.fail("超时!!" + timeOut + "秒之后还没有找到元素[" + by + "]"); } }}

其中的TestNg.xml文件如下:

注意:如果测试代码中有需要用到参数,并且参数在xml文件中声明了,那么运行的时候一定通过xml文件来执行测试。不然参数会找不到,用例会跳过。

跳过时,会有以下这样的结果:

转载于:https://www.cnblogs.com/yajing-zh/p/5077871.html

你可能感兴趣的文章
实验二 进程调度预备
查看>>
7zip在DOS命令行用法总结
查看>>
在IIS中实现JSP
查看>>
[转载]Meta标签详解
查看>>
网络编程之socket
查看>>
Cognos报表验证(添加字段)
查看>>
学术-物理-维空间:一维空间
查看>>
python-文件读写操作
查看>>
Git 内部原理之 Git 对象哈希
查看>>
Vue中引入TradingView制作K线图
查看>>
爱历史 - 朝代歌
查看>>
PHP设计模式之:单例模式
查看>>
Linux查看CPU和内存使用情况总结
查看>>
session丢失问题
查看>>
虚拟机CentOS设置IP
查看>>
Django之ORM多对多表创建方式,AJAX异步提交,分页器组件等
查看>>
SqlServer查询表名的备注(查询表名描述 MS_Description)
查看>>
laravel 数据验证规则
查看>>
Laravel 报错: Dotenv values containing spaces must be surrounded by quotes.
查看>>
composer.json和composer.lock到底是什么以及区别?
查看>>