• selenium2 TestNG参数化


    想要参数化,首先要加入@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<Boolean>() {
                            public Boolean apply(WebDriver driver) {
                                WebElement element = driver.findElement(by);
                                return element.isDisplayed();
                            }
                        });
            } catch (TimeoutException e) {
                Assert.fail("超时!!" + timeOut + "秒之后还没有找到元素[" + by + "]");
            }
        }
    }

    其中的TestNg.xml文件如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <suite name="Suite" parallel="false">
        <parameter name="keyword" value="java"/>
      <test name="Test">
        <classes>
          <class name="com.demo.test.NewTest"/>
        </classes>
      </test> <!-- Test -->
    </suite> <!-- Suite -->

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

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

  • 相关阅读:
    Update SSM agent to each EC2 via Bat and bash script
    Shell脚本循环读取文件中的每一行
    通过psexec实现远程安装软件包
    Getting Private/Public IP address of EC2 instance using AWS-cli [closed]
    Python to list users in AWS
    BAT script to set local account password never expire
    Difference between Netbios and Host name
    PowerShell官方文档
    powershell for rename server name
    Create a conditional DNS forwarder on our domain.com to Amazon default DNS provider
  • 原文地址:https://www.cnblogs.com/yajing-zh/p/5077871.html
Copyright © 2020-2023  润新知