ARC
ARC

Reputation: 87

Parameterization using XML

I am having trouble with accessing attributes from XML file. The goal is to display searchkey "value" (in the XML file) in the search box. But when I run the script as Testng, I am getting "Ram"(@Optional value in the code) as the search key .

ERROR when i run XML: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber:17; The document type declaration for root element type "suite" must end with '>'. at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:341)

XML code:

<?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 Code: name of the file is 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); 

}
}

Upvotes: 0

Views: 2928

Answers (1)

Deepak
Deepak

Reputation: 336

enter image description hereLooks like xml is not well formatted. Please try this -

<?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>

suites,parameters,class tags should be in small case in xml. Above xml is working for me & giving value U.K in result

Upvotes: 1

Related Questions