2017-10-10 8 views
-2

私はページの下部までスクロールしてフッターをクリックする必要があるWebページを自動化しようとしています。しかし、私が自動化しているWebページには無限のスクロールがあります。これに関する助言?JavaでSelenium Webドライバを使用して無限にスクロールするWebページを自動化

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

[なぜ誰かが私を助けることができますか?]実際の質問ではありませんか?](https://meta.stackoverflow.com/questions/284236/why-is-can-someone-help-me-not-an実際の質問)。何が問題ですか?何が効いていないのですか?人々があなたのコードを実行する時間を取ると仮定しないでください。あなたのコードが何をしようとしているのか、何が間違っているのかを詳細に説明してください...エラーメッセージや正確には動作しないものはここで必要です。 – JeffC

+0

@JeffC私は何をしましたか。 「私はページの一番下までスクロールしてフッタをクリックする必要があります」これは私がやろうとしていることです。私はそれに取り組まずに助けを求めるだけではありません。私が作り出した5行のコードは、私の283行のコードのうち、うまくいかないものです。私はまた、以下の私のコメントで、Webページがある程度までスクロールしてからスクロールを停止することを指定しました。だから私は実際にそれに取り組むことなく、ただ助けを求めているとは思わない。 – Yuga

+0

@JeffCまた、私はStack Overflowに掲載されたいくつかの同様の質問を行ってきました。すべての可能な解決策を試した後で、私はこの質問を投稿しました。 – Yuga

答えて

1

は、ページの下部に到達したかどうかをチェックするために独自のコードを次のコード

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

あなたはfooterIsNotPresentを置き換えることができます()を使用することができます。フッタが存在しなくなるまでスクロールし続けます。

+0

それはうまくいった。ありがとう!私の場合は、element.isDisplayed()を条件として使用しました。 – Yuga

+0

大歓迎です。 @Yuga –

関連する問題