当前位置: 首页 > 面试题库 >

selenium:检索向下滚动时加载的数据

淳于慎之
2023-03-14
问题内容

我正在尝试检索具有ajax加载向下滚动功能alla
Twitter的页面中的元素。由于某种原因,此功能无法正常运行。我添加了一些打印语句以对其进行调试,但我总是得到相同数量的项目,然后函数返回。我在这里做错了什么?

wd = webdriver.Firefox()
wd.implicitly_wait(3)

def get_items(items):
    print len(items)
    wd.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    # len(items) and len(wd.find_elements-by...()) both always seem to return the same number
    # if I were to start the loop with while True: it would work, but of course... never end
    while len(wd.find_elements_by_class_name('stream-item')) > len(items):
        items = wd.find_elements_by_class_name('stream-item')
        print items
        wd.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    return items

def test():
    get_page('http://twitter.com/')
    get_items(wd.find_elements_by_class_name('stream-item'))

问题答案:

尝试介于两者之间

wd = webdriver.Firefox()
wd.implicitly_wait(3)

def get_items(items):
    print len(items)
    wd.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    # len(items) and len(wd.find_elements-by...()) both always seem to return the same number
    # if I were to start the loop with while True: it would work, but of course... never end

    sleep(5) #seconds
    while len(wd.find_elements_by_class_name('stream-item')) > len(items):
        items = wd.find_elements_by_class_name('stream-item')
        print items
        wd.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    return items

def test():
    get_page('http://twitter.com/')
    get_items(wd.find_elements_by_class_name('stream-item'))

注意:硬睡眠只是为了证明它有效。请改用waits包来等待智能状态。



 类似资料:
  • 问题内容: 我正在尝试检索具有ajax加载向下滚动功能alla Twitter的页面中的元素。由于某些原因,此功能无法正常运行。我添加了一些打印语句以对其进行调试,并且我总是得到相同数量的项目,然后函数返回。我在这里做错了什么? 问题答案: 尝试介于两者之间 注意:硬睡眠只是为了证明它有效。请改用waits包来等待智能状态。

  • 我使用无头铬硒包。当我手动访问网站并向下滚动时,它会加载更多的iTen,下面显示的while循环中的列表“nome”会更新。当我使用selenium和一个头部浏览器时,它也可以工作。为什么页面没有加载headless?也许这无关紧要,但我也从ua更改了userAgent。随机发送到ua['Chrome']。 我从这里得到的,

  • 问题内容: 我正在构建一个博客类型的页面,并且我希望在用户向下滚动时将项目加载到该页面中,就像Google Reader或Soup.io。您将如何实现这种效果?我看过一些读取页面高度的示例,甚至在窗口上附加了onScroll,以便当用户向下滚动时,我们可以测试一下是否向下滚动足够远以保证可以加载更多项目。Soup.io的实现似乎在向下滚动时删除了旧项,以使浏览器不再处理越来越大的DOM树。哪个Ja

  • 问题内容: 有人可以帮助我使用 Java* 使用 WebDriver 自动 向下滚动功能 吗? *** 就我而言,当我垂直向下滚动鼠标时,对于yahoo邮件就会显示( 可见 )。 问题答案: 您可以使用以下代码垂直向下滚动: 同样,也可以通过将y坐标更改为负值来向上滚动: 您还可以使用以下代码: 对于向下滚动: 向上滚动:

  • 本文向大家介绍vim 向下滚动,包括了vim 向下滚动的使用技巧和注意事项,需要的朋友参考一下 示例 命令 描述 Ctrl+E 向下滚动一行。 Ctrl+D 向下滚动半屏(可使用该scroll选项配置)。 Ctrl+F 向下滚动全屏。 z+ 在窗口顶部的窗口下方绘制第一行。

  • 问题内容: 我正在尝试从航班搜索页面中抓取一些数据。 此页面的工作方式如下: 您填写表格,然后单击按钮搜索-可以。当您单击按钮时,您将被重定向到包含结果的页面,这就是问题所在。例如,此页面会持续添加一分钟的结果,这没什么大不了的- 问题是要获得所有这些结果。在实际的浏览器中,您必须向下滚动页面,然后才会显示这些结果。因此,我尝试使用Selenium向下滚动。它可能在页面底部如此之快地向下滚动,或者