Ich bin neu Selenium-Web-Treiber. Also versuche ich ein Beispiel mit verschiedenen Websites zu erstellen. In einem solchen Muster habe ich versucht, mit der OTTO-Website zu arbeiten und zu versuchen, den Artikel in den Warenkorb zu legen. Hier kommt das Problem, auf dieser Website gibt es ein modales Fenster, bevor Sie den Artikel in den Warenkorb legen.Nicht in der Lage, den Modellwert mit Selen zu lesen
Meine Frage ist, wie man das modale Fenster betritt und auf die Elemente darin zugreift? Unten ist der Code, mit dem ich es versucht habe. Click here to view the image for reference
import java.util.Iterator;
import java.util.Set;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class AutomationTesting {
public static void main(String[] args) {
System.setProperty("webdriver.gecko.driver","/Users/xxx/eclipse-workspace/seleniumTesting/lib/geckoDriver/geckodriver");
WebDriver driver = new FirefoxDriver();
driver.get("https://www.google.de");
driver.findElement(By.id("lst-ib")).sendKeys("Pepe Jeans");
driver.findElement(By.id("lst-ib")).sendKeys(Keys.ENTER);
WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.partialLinkText("Pepe Jeans Online-Shop | OTTO")));
driver.findElement(By.partialLinkText("Pepe Jeans Online-Shop | OTTO")).click();
driver.findElement(By.linkText("Pepe Jeans Chiffonkleid »MARY«, im modischen Leo-Muster")).click();
driver.findElement(By.xpath("//ul//li[@data-variationid='594838149']")).click();
driver.findElement(By.id("addToBasket")).click();
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("p_layer")));
wait.until(ExpectedConditions.visibilityOfElementLocated(By.className("or_itemAdded__itemInfo")));
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//a[@data-qa='goToBasket']")));
driver.findElement(By.xpath("//a[@data-qa='goToBasket']")).click();
}
}
Bitte lesen Sie, warum ein [** 'Screenshot von HTML finden oder Code oder Fehler ist eine schlechte Idee "**" (https://meta.stackoverflow.com/questions/303812/discourage-screenshots-of-code-and-or-rors). Erwägen Sie, die Frage mit formatierten textbasierten HTML- und Code-Tests zu aktualisieren. – DebanjanB