Szenario: Gehen Sie zu Yahoo.com, suchen Sie nach Hotmail und klicken Sie nacheinander auf alle Suchseiten.Klicken Sie auf alle Ergebnislinks
Mein Code: Es druckt nur den Link der Ergebnisseiten. Gibt es eine Möglichkeit, Seiten 2,3,4 zu klicken, während keine Seite mehr übrig ist?
public class QAJob {
@Test
public void jobSearch(){
WebDriver driver= new FirefoxDriver();
driver.get("https://yahoo.com");
driver.findElement(By.id("uh-search-box")).sendKeys("hotmail");
driver.findElement(By.id("uh-search-button")).click();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
//scroll down
JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript("window.scrollBy(0,1000)", "");
List<WebElement> result_pages=driver.findElements(By.xpath("//div[contains(@class,'pagination')]//a[contains(@title,'')]"));
for (WebElement e: result_pages){
Actions action= new Actions(driver);
WebElement search_results=driver.findElement(By.xpath("//div[contains(@class,'pagination')]//a[contains(@title,'')]"));
System.out.println(e.getAttribute("outerHTML"));
}
}
}
Was meinst du 'alle Suchseiten einzeln '? Mehrere Klicks gleichzeitig? – Andersson
Ich verstehe Ihr Problem nicht gut, was ich verstanden habe, dass Sie nicht auf den Link klicken können? Verwenden Sie einfach diesen Code-Link innerhalb Ihrer for-Schleife: e.click() –
Ich kann den XPath von Seite 2,3,4 finden und hart Code es, lieber möchte ich auf Seite 2 klicken, dann Seite 3, dann die nächste Seite, damit ich den xpath nicht mehrfach codieren muss, mehrere Klicks gleichzeitig. –