I have customized an XPath for adding a product which has discount 30% for 2. Now I am facing problem while adding this into the cart.
package sample;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
public class Coop_angebote {
public static void main(String[]args) throws InterruptedException{
System.setProperty(“webdriver.chrome.driver”,”C:\Chrome\chromedriver.exe”);
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put(“credentials_enable_service”, false);
prefs.put(“password_manager_enabled”, false);
options.setExperimentalOption(“prefs”, prefs);
options.addArguments(“start-maximized”);
options.addArguments(“disable-infobars”);
WebDriver driver = new ChromeDriver(options);
driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);
// For Login Functionality
driver.get(“https://www.coopathome.ch/de?lang=de”);
driver.findElement(By.xpath(“html/body/div[2]/div/div[2]/nav[2]/div/ul/li[2]/a[1]/span”)).click();
Thread.sleep(2000);
driver.findElement(By.xpath(“html/body/div[1]/div[2]/div/div/div/div/div/div/form/div[3]/div/div/input”)).sendKeys(“USERNAME”);
driver.findElement(By.xpath(“html/body/div[1]/div[2]/div/div/div/div/div/div/form/div[4]/div[2]/div/input”)).sendKeys(“PASSWORD”);
driver.findElement(By.xpath(“html/body/div[1]/div[2]/div/div/div/div/div/div/form/div[6]/button”)).click();
Thread.sleep(2000);
driver.findElement(By.xpath(“html/body/div[3]/div/div[2]/div[2]/header/a”)).click();
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript(“window.scrollBy(0,800)”, “”);
Thread.sleep(1000);
JavascriptExecutor jse1=(JavascriptExecutor)driver;
jse1.executeScript(“window.scrollBy(0,400)”, “”);
Thread.sleep(1000);
JavascriptExecutor jse2=(JavascriptExecutor)driver;
jse2.executeScript(“window.scrollBy(0,800)”, “”);
Thread.sleep(1000);
JavascriptExecutor jse3=(JavascriptExecutor)driver;
jse3.executeScript(“window.scrollBy(0,800)”, “”);
Thread.sleep(1000);
JavascriptExecutor jse4=(JavascriptExecutor)driver;
jse4.executeScript(“window.scrollBy(0,800)”, “”);
Thread.sleep(1000);
JavascriptExecutor jse5=(JavascriptExecutor)driver;
jse5.executeScript(“window.scrollBy(0,250)”, “”);
Thread.sleep(1000);
JavascriptExecutor jse6=(JavascriptExecutor)driver;
jse6.executeScript(“window.scrollBy(0,250)”, “”);
//driver.findElement(By.xpath(“//*[contains(text(),’30% ab 2′)]”)).click();
List<WebElement> var=driver.findElements(By.xpath(“//*[contains(text(),’30% ab 2′)]”));
System.out.println(var.size());
for(int i = 0;i<=var.size();i++){
List<String> li = new ArrayList<String>();
var.get(i).getText().trim();
System.out.println(“ACTUAL:'”+ var.get(i).getText().trim() + “‘”);
if(var.get(i).getText().trim().equals(“30% ab 2”))
{
driver.findElement(By.xpath(“//*[@class=’btn__inner’]”)).click();
Thread.sleep(1000);
System.out.println(“IN iF:”);
}
Source: Read More