Hi,
I have written the following code to run tests in multiple browsers using XML. But while running the suite it is showing error, unable to run tests. Can any one share your knowledge with me to solve this problem?
I am using Selenium 2.37
XML file:<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "
http://testng.org/testng-1.0.dtd">
<suite name=”Suite1″ parallel=”tests” >
<test name="Application Login” preserve-order="true">
<parameter name="browserType" value=”FF”/>
<classes>
<class name=”Practice_pack_1.Google” />
</classes>
</test>
<test name="Getting all links” preserve-order="true">
<parameter name="browserType" value=”Chrome”/>
<classes>
<class name=”Practice_pack_1.GetallLinks” />
</classes>
</test>
</suite>
Class One:package Practice_pack_1;
import
org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class Google {
WebDriver driver;
@BeforeTest
@Parameters ({"browserType"})
public void open(String browserType) throws InterruptedException
{
if(browserType.equals("FF"))
{
driver=new FirefoxDriver();
driver.manage().window().maximize();
driver.get("
http://www.google.co.in/");
Thread.sleep(2000);
}
else if(browserType.equals("Chrome"))
{
System.setProperty("webdriver.chrome.driver", "C:\\Users\\ssatyanarayana\\Downloads\\chromedriver.exe");
driver= new ChromeDriver();
driver.get("
http://www.google.co.in/");
}
}
@AfterTest
public void close()
{
driver.quit();
}
@Test
public void click() throws InterruptedException
{
driver.findElement(By.linkText("Imahes")).click();//Xpath of images
Thread.sleep(2000);
String result=driver.getTitle();
System.out.println("Page Title is :"+result);
}
}
Class Two: package Practice_pack_1;
import java.util.ArrayList;
import java.util.List;
import
org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class GetallLinks {
WebDriver driver;
@BeforeTest
@Parameters ({"browserType"})
public void open(String browserType)
{
if(browserType.equals("FF"))
{
System.out.println(".......................");
driver=new FirefoxDriver();
driver.manage().window().maximize();
driver.get("
http://www.google.co.in") ;
}
else if(browserType.equals("Chrome"))
{
System.setProperty("webdriver.chrome.driver", "C:\\Users\\ssatyanarayana\\Downloads\\chromedriver.exe");
driver= new ChromeDriver();
driver.manage().window().maximize();
driver.get("
http://www.google.co.in") ;
}
}
@Test
public void ab_count()
{
List<WebElement> element = driver.findElements(By.tagName("a"));
List<WebElement> tmpEle = new ArrayList<WebElement>();
int linkcount = element.size();
for(int i=0;i<linkcount;i++){
if(element.get(i).getText().trim().length()!=0){
tmpEle.add(element.get(i));
System.out.println(element.get(i).getText());
}
}
System.out.println("Total links are:" +tmpEle.size());
}
@AfterTest
public void close()
{
driver.quit();
}
}
Output:org.testng.TestNGException: org.xml.sax.SAXParseException; lineNumber: 3; columnNumber: 13; Open quote is expected for attribute "{1}" associated with an element type "name".
at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:341)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:88)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
Caused by: org.xml.sax.SAXParseException; lineNumber: 3; columnNumber: 13; Open quote is expected for attribute "{1}" associated with an element type "name".
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanAttributeValue(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanAttribute(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$ContentDriver.scanRootElementHook(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at org.testng.xml.XMLParser.parse(XMLParser.java:39)
at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:17)
at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:10)
at org.testng.xml.Parser.parse(Parser.java:168)
at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:311)
... 3 more
Thanks in advance