Reputation: 87
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
Reputation: 336
Looks 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