通过向下滚动到页面底部加载Instagram图像

时间:2016-01-20 03:33:59

标签: java html selenium scroll

以此Instagram链接为例。 https://www.instagram.com/janelaverdegarden/,我想通过滚动到页面底部来加载所有图像。要做到这一点,我必须单击“加载更多”按钮,向下滚动到底部页面,等待页面加载,向上滚动升技,然后向下滚动到底部页面并等待页面再次加载,直到不再有图像(手动)

但是,我想使用Selenium自动加载页面。因此,最初,我认为一旦页面完全加载到包含所有图像的页面末尾,网页元素rbSensor将消失,允许我标记页面已到达底部而没有更多图像要加载。但是,它仍然存在。那么有没有其他方法来检查页面是否满载所有图像?

<div data-reactid=".0.1.0.1:$mostRecentSection/=10">
     <div class="_nljxa" data-reactid=".0.1.0.1:$mostRecentSection/=10.0">
     <div class="ResponsiveBlock" data-reactid=".0.1.0.1:$mostRecentSection/=10.1">
             <div class="rbSensor" data-reactid=".0.1.0.1:$mostRecentSection/=10.1.$sensor">
                    <iframe class="rbSensorFrame" data-reactid=".0.1.0.1:$mostRecentSection/=10.1.$sensor.0"/>
                    </div>
      </div>
</div>

代码即可。当我使用rbSensor加载页面时,即使页面完全加载了所有图像,当元素仍然在html中时,仍然会连续单击该元素。

while (driver.findElements(By.className("rbSensor")).size() > 0) { 
    jse.executeScript("window.scrollTo(0,-300)"); //scroll up abit
    //click on button if found
    driver.findElement(By.className("rbSensor")).click(); 
    Thread.sleep(2000); //pause for 2 seconds
}

Page scroll up or down in Selenium WebDriver (Selenium 2) using java中使用以下答案并不是我想要的,在这种情况下不会起作用。

jse.executeScript("window.scrollBy(0,250)", "");

1 个答案:

答案 0 :(得分:1)

尝试使用其他类名

className("_oidfu")

具有href属性

滚动答案可在此处找到:Page scroll up or down in Selenium WebDriver (Selenium 2) using java