<dependencies>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.1.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.github.bonigarcia/webdrivermanager -->
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>5.0.3</version>
</dependency>
</dependencies>
System.setProperty("webdriver.chrome.driver", "drivers/chromedriver");//https://chromedriver.chromium.org/downloads
or
WebDriverManager.chromedriver().driverVersion("97.0.4692.71").setup();//https://mvnrepository.com/artifact/io.github.bonigarcia/webdrivermanager
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setPageLoadStrategy(PageLoadStrategy.EAGER);
WebDriver driver = new ChromeDriver(chromeOptions);
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
driver.manage().timeouts().scriptTimeout(Duration.ofMinutes(2));
driver.manage().timeouts().pageLoadTimeout(Duration.ofSeconds(100));
driver.get(BASE_URL);
driver.manage().window().maximize();
driver.findElement(By.name("keyword")).sendKeys(PRODUCT_NAME, Keys.ENTER);
driver.findElement(By.xpath("//input[@placeholder='Enter your pincode']")).sendKeys(pincode);
driver.findElement(By.xpath("//button[@class='pincode-check']")).click();
for (int i = 0; i < 10; i++) {
driver.findElement(By.xpath("//body")).sendKeys(Keys.ARROW_DOWN); //mandatory scroll to find element
}
WebElement productAnchorTag = driver.findElement(By.partialLinkText(PRODUCT_NAME));
String productLink = productAnchorTag.getAttribute("href");
driver.get(productLink);
driver.findElement(By.id("add-cart-button-id")).click();
WebElement proceedToCheckout = driver.findElement(By.cssSelector("a[class='btn marR5']"));
proceedToCheckout.click();
String snapdealWindow = driver.getWindowHandle();
WebDriverWait webDriverWait = new WebDriverWait(driver, 30);
WebElement loginFB = driver.findElement(By.id("fblogin"));
loginFB.click();
Set<String> driverWindowHandles = driver.getWindowHandles();
for (String windowHandle : driverWindowHandles) {
if(!driver.getWindowHandle().equals(windowHandle)){
driver.switchTo().window(windowHandle);
driver.findElement(By.id("email")).sendKeys(FB_USER_NAME);
driver.findElement(By.id("pass")).sendKeys(FB_PASSWORD, Keys.ENTER);
break;
}
}
driver.switchTo().window(snapdealWindow);
WebElement makePayment = webDriverWait.until(
ExpectedConditions.visibilityOfElementLocated(By.id("make-payment"))
);
if(makePayment.isDisplayed()) {
driver.findElement(By.id("make-payment")).click();
}
driver.close();
driver.quit();
Appium