现在遇见一个问题,需要通过selenium不断向下刷新页面获取新数据。
之前看到的一些方法,主要就是让selenium执行js:
js = "var q=document.documentElement.scrollTop=100000"
driver.execute_script(js)
但是发现有的网站,滚动几次之后就不能继续刷新了,具体原因还未找到,可能和服务器响应过慢有关。后来找到如下方法,也是执行js,只不过对象不同。
ac = driver.find_element_by_xpath('(//a[@class="js-photo-link photo-item__link"])[last()]')
driver.execute_script("arguments[0].scrollIntoView();", ac)
我遇见的情况是需要拿到所有的图片链接,所以第一行代码的意思就是,每次找到当前加载的页面中,最后一个图片的链接所在的element;因为浏览器展示区域有限,所以第二行代码就会自动向下找该元素,以此达到向下翻页的效果