使用XML进行参数化

时间:2014-10-19 14:47:47

标签: selenium selenium-webdriver webdriver testng

我在从XML文件访问属性时遇到问题。目标是显示searchkey" value" (在XML文件中)在搜索框中。但是当我将脚本作为Testng运行时,我得到了" Ram"(代码中的@可选值)作为搜索关键字。

运行XML时出错:org.xml.sax.SAXParseException; lineNumber:2;得到columnnumber:17;根元素类型的文档类型声明" suite"必须以'>'结尾。     at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:341)

XML代码:

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

<suite name="TestSuite" verbose="1">

  <parameter name="author" value="Guru99"/>
  <parameter name="searchkey" value="Testng"/>

    <test name="testguru">

      <parameter name="searchkey" value="U.K"/>

    <classes>
      <class name="Testngfiles.Parameters_xml"/>

    </classes>
    </test>
    </suite>

Java代码:文件名是Parameters_xml.java

package Testngfiles;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.By;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.WebElement;
import org.testng.Assert;
import org.testng.annotations.Optional;
import org.testng.annotations.Parameters;

import java.io.File;

import static org.testng.Assert.assertTrue;

import org.testng.annotations.*;

import java.util.concurrent.TimeUnit;

   public class Parameters_xml {

@Test
@Parameters({"author", "searchkey"})
public void testparameters(@Optional("ABC")String author,@Optional("Ram")String searchkey) throws Exception
{
    WebDriver driver=new FirefoxDriver();
    driver.navigate().to("http://guru99.com/selenium-tutorial.html");
    driver.manage().timeouts().implicitlyWait(15,TimeUnit.SECONDS);
    WebElement searchtext=driver.findElement(By.name("gsquery"));
    searchtext.sendKeys(searchkey); 

}
}

1 个答案:

答案 0 :(得分:1)

enter image description here看起来xml格式不正确。请试试这个 -

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

<suite name="BVC" verbose="1">
    <parameter name="author" value="Guru99" />
    <parameter name="searchkey" value="Testng" />
    <test name="SmokeTestFF">
        <parameter name="searchkey" value="U.K" />
        <classes>
            <class name="abc.aaa" />
        </classes>
    </test>
</suite>

套件,参数,类标签应该在xml中小写。以上xml适用于我和在结果中给出U.K值