2017-10-10 2 views
-2

J'essaie d'automatiser une page Web, où je dois faire défiler tout le bas de la page et cliquer sur pied de page. Cependant, la page Web que j'automatise a le défilement infini. Toute aide à ce sujet?Automatiser une page Web à défilement infini à l'aide du pilote Web Selenium en Java

public class practiceNG 
    { 
     WebDriver driver; 
     @BeforeTest 
     public void start() 
     { 
      System.setProperty("webdriver.chrome.driver", "Y:\\Selenium\\chromedriver.exe"); 
      driver = new ChromeDriver(); 
      driver.manage().window().maximize(); 
      driver.get("http://the-internet.herokuapp.com/"); 
     } 

     @Test (priority = 3) 
     public void infiniteScroll() throws InterruptedException 
     { 
      JavascriptExecutor jse = (JavascriptExecutor)driver; 
      jse.executeScript("window.scrollBy(0,200)", ""); 
      driver.findElement(By.xpath(".//[@id=\'content\']/ul/li[23]/a")).click(); 
      Thread.sleep(1000); 
      ((JavascriptExecutor) driver).executeScript("window.scrollTo(0, document.body.scrollHeight)"); 
      driver.findElement(By.xpath("//*[@id=\"page-footer\"]/div/div/a")).click(); 
     } 

     @AfterTest 
     public void close() 
     { 
      driver.quit(); 
     } 
    } 
+0

Lire [Pourquoi est-ce que "Quelqu'un peut-il m'aider?" N'est pas une question?] (Https://meta.stackoverflow.com/questions/284236/why-is-can-someone-help-me-not-an -actual-question). Quel est le problème? Qu'est-ce qui ne fonctionne pas? Ne supposez pas que les gens vont prendre le temps d'exécuter votre code. Expliquez en détail ce que votre code tente de faire et ce qui ne va pas ... Des messages d'erreur ou ce qui ne fonctionne pas est nécessaire ici. – JeffC

+0

@JeffC J'ai inclus ce que j'ai fait. "J'ai besoin de faire défiler tout le bas de la page et de cliquer sur le pied de page" c'est ce que j'essaie de faire et je l'ai mentionné, a également produit le code qui m'a échoué. Je ne demande pas seulement de l'aide sans y travailler. Les 5 lignes de code que j'ai produites sont ce qui ne fonctionne pas, sur mes 283 lignes de code. J'ai également spécifié dans mon commentaire ci-dessous, que la page Web défile dans une certaine mesure, puis arrête le défilement. Donc je ne pense pas que je cherche juste de l'aide sans vraiment y travailler. – Yuga

+0

@JeffC J'ai aussi passé en revue plusieurs autres questions similaires sur Stack Overflow. Seulement après avoir essayé toutes les solutions possibles, j'ai posté cette question. – Yuga

Répondre

1

Vous pouvez utiliser le code suivant

while(footerIsNotPresent()){ 
     JavascriptExecutor jse = (JavascriptExecutor) driver; 
     jse.executeScript("window.scrollTo(0, document.body.scrollHeight);"); 
     } 

Vous pouvez remplacer footerIsNotPresent() avec votre propre code pour vérifier si bas de la page est atteinte. Il continuera à défiler jusqu'à ce que le pied de page ne soit pas présent.

+0

Cela a fonctionné. Merci! Dans mon cas, j'ai utilisé element.isDisplayed() comme condition. – Yuga

+0

Bienvenue. @Yuga –