有一個網站,列出前20項和他們,如果我向下滾動它加載下20項。說如果網站要列出100個項目,那麼我必須向下滾動到最後一個項目5次以獲得所有列出的100個項目。硒加載完整的網站
我在java中使用硒來獲取網頁,但它只獲得前20項。我希望它加載頁面中的所有項目並獲取頁面的html。
在顯示了大約100個項目之後,頁面會生成一個如下所示的顯示div。
<div id="show-more-results" class="dont-show">
Show more results
</div>
現在我想點擊show more results
。我有一個工作代碼,直到這部分。 但點擊show-more-results
部分不起作用。
public class seleniumTest
{
public static void main(String[] args) throws InterruptedException
{
String link = "http://www.some.com";
System.setProperty("webdriver.chrome.driver","path");
WebDriver driver = new ChromeDriver();
driver.get(link);
JavascriptExecutor jse = (JavascriptExecutor)driver;
for (int i = 0; i < 4; i = i + 1) {
jse.executeScript("window.scrollBy(0, 5000)", "");
Thread.sleep(1000L);
}
driver.findElement(By.id("show-more-results")).click();
}
}
該代碼的最後一行現在不起作用。即driver.findElement(By.id("show-more-results")).click();
URL中使用:
http://www.flipkart.com/mobiles/micromax~brand/pr?p%5B%5D=sort%3Dprice_asc&sid=tyy%2C4io&ref=d92e01d2-38f2-46bb-82be-752e93e9ce88
任何幫助嗎?
的當您向下滾動時,頁面可能會向服務器發出另一個請求,因此您可能必須找出請求URL和POST身體(如果有的話)並重新創建它。那有意義嗎? – Tyress 2014-09-01 04:14:32
「你現在不工作」是什麼意思?沒有點擊執行?例外?您可以通過視覺方式執行腳本,此時會顯示「顯示更多結果」按鈕? – 2014-09-01 12:17:07
你可以分享使用的實際網址嗎? – alecxe 2014-09-01 13:09:55