Ich erstelle einen automatischen Test für einige Web und verwende WebDriver und Code, der in Java geschrieben ist. Ich habe hier zwei Probleme.Liste <WebElement> gibt leere Ergebnisse
click()
Methode funktioniert nicht.- Wenn ich versuche, eine Liste von WebElement zu lesen, wird die Anzeige leer angezeigt. Aber es zeigt korrekt
size()
.
Mein Code:
System.setProperty("webdriver.gecko.driver", "D:\\back up\\Proj\\selenium\\Jars\\Drivers\\geckodriver.exe");
WebDriver driver=new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("http://www.americangolf.co.uk/golf-clubs/fairway-woods");
List<WebElement> allBrands = driver.findElements(By.xpath("//*[@id='secondary']/div[1]/div[2]/div/ul/li/a"));
List<WebElement> allBrandsInShowAll = driver.findElements(By.xpath("//*[@id='secondary']/div[1]/div[2]/div/div[2]/ul/li/a"));
System.out.println("Total No of Brands "+(allBrands.size() + allBrandsInShowAll.size()));
driver.findElement(By.xpath("//*[@id='secondary']/div[1]/div[2]/div/div[1]/a")).click(); // This is not clicking on ShowAll Button
for(WebElement ele :allBrandsInShowAll) {
System.out.println("Name=>"+ele.getText());
}
for(WebElement ele :allBrands) {
System.out.println("Name=>"+ele.getText()); // Not printing the names of Brands
}
Haben Sie XPath validieren, wo Sie versuchen, um Elemente zu bekommen? Es könnte möglich sein, dass Xpath falsch ist. –
Was willst du hier in ** allBrandsInShowAll **? –
Xpath ist korrekt. Ich habe es bestätigt. überprüfen Sie bitte diese URL "http://www.americangolf.co.uk/golf-clubs/fairway-woods" allBrandsInShowAll sollte die Werte halten, die nach [+ Show All] Knopf klicken. [li Werte sind unter verschiedenen div] – bbk