Problem:
Solution:
import java.util.Iterator;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Demo {
public static void main(String args[]) {
WebDriver driver = new FirefoxDriver();
driver.get("http://www.flipkart.com");
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
try {
if(driver.findElement(By.xpath("//input[@type='password']")).isDisplayed()) {
driver.findElement(By.xpath("(//button)[2]")).click();
}
}catch(Throwable t) {
System.out.println("Lightbox not displayed");
}
driver.manage().window().maximize();
driver.findElement(By.name("q")).sendKeys("Acer Aspire 3 Pentium Quad Core");
driver.findElement(By.xpath("//button[@type='submit']")).click();
driver.findElement(By.xpath("(//div[contains(text(),'Laptop')])[1]")).click();
Set<String> windows = driver.getWindowHandles();
Iterator<String> itr = windows.iterator();
String mainWindow = itr.next();
String childWindow = itr.next();
driver.switchTo().window(childWindow);
try {
if(driver.findElement(By.xpath("//input[@type='password']")).isDisplayed()) {
driver.findElement(By.xpath("(//button)[2]")).click();
}
}catch(Throwable t) {
System.out.println("Lightbox not displayed");
}
if(driver.getTitle().contains("Acer Aspire")) {
driver.findElement(By.xpath("(//button)[2]")).click();
}
System.out.println("Item added to bag sucessfully");
}
}





2 comments:
This is great. Anyhow Flipkart will not punish by testing on live site?
Yes, its not a good practice to automate sites like Flipkart.
I believe that I am doing any harm to the Flipkart, rather I feel I am promoting/marketing flipkart to reach more audience.
Some people may end up in purchasing from Flipkart after trying this scenario.
Post a Comment