以此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)", "");
答案 0 :(得分:1)
尝试使用其他类名
className("_oidfu")
具有href属性
滚动答案可在此处找到:Page scroll up or down in Selenium WebDriver (Selenium 2) using java