Reading from XML to trigger a Selenium driver
xml:
Java code:
Java code:
/*
* @ Author : Sumit Mittal
* @ Description : A simple program to read XML and retrieve data to manipulate Selenium webdriver
* @ Date : 1/03/2014
*/
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.*;
import org.w3c.dom.*;
public class GmailXMLTest {
public static void main(String argv[]) {
try {
File file = new File("C:\\TestData.xml"); //file location should be specified correctly
// Prepare XML
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(file);
document.getDocumentElement().normalize();
System.out.println("Debug: Root element"+ document.getDocumentElement().getNodeName());
NodeList node = document.getElementsByTagName("TestData");
System.out.println("TestData Details");
System.out.println("________________________________________________");
//Read XML to get test data
for (int i = 0; i < node.getLength(); i++) {
Node currentNode = node.item(i);
if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) currentNode;
NodeList mailServerElemntList = element.getElementsByTagName("service");
Element mailServer = (Element) mailServerElemntList.item(0);
NodeList mailServer1 = mailServer.getChildNodes();
String Service = ((Node)mailServer1.item(0)).getNodeValue();
System.out.println("Mail Servername:"+ Service);
NodeList emailNodeElementList = element.getElementsByTagName("email-id");
Element emailNodeElement = (Element)emailNodeElementList.item(0);
NodeList details = emailNodeElement.getChildNodes();
String emailAddress=((Node) details.item(0)).getNodeValue();
System.out.println("email :" + emailAddress);
NodeList passwordNodeElementList = element.getElementsByTagName("password");
Element passwordNodeElement = (Element) passwordNodeElementList.item(0);
NodeList address = passwordNodeElement.getChildNodes();
String passCode = ((Node) address.item(0)).getNodeValue();
System.out.println("Password : "+passCode);
NodeList destFolder = element.getElementsByTagName("folder");
Element destElement = (Element) destFolder.item(0);
NodeList city = destElement.getChildNodes();
String destnFolder = ((Node) city.item(0)).getNodeValue();
System.out.println("Folder : " + destnFolder);
FirefoxDriver wd = new FirefoxDriver();
wd.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
wd.get(Service);
wd.findElement(By.id("Email")).sendKeys(emailAddress);
wd.findElement(By.id("Passwd")).sendKeys(passCode);
wd.findElement(By.id("signIn")).click();
Thread.sleep(8000);
System.out.println(wd.getTitle());
System.out.println(wd.getCurrentUrl());
if (!wd.getCurrentUrl().equals("https://mail.google.com/mail/?shva=1#inbox")) {
wd.close();
System.out.println("Failed to navigate to inbox");
throw new RuntimeException("assertTitle failed");
}
System.out.println("Test Completed - login passed and navigated to inbox");
wd.close();
}
}}
catch (Exception e) {e.printStackTrace();}
}
}

No comments:
Post a Comment