【问题标题】:Scroll till bottom using Selenium Python使用 Selenium Python 滚动到底部
【发布时间】:2015-12-22 12:04:19
【问题描述】:

我正在使用 Selenium 和 Python 从this 网站提取医生列表。我选择选项 Specialty 并提取结果。一旦我们像 twitter 提要一样滚动页面,结果就会显示出来。我无法滚动页面来查看结果。我尝试了多种方法,例如 send_keys

   for i in range(0,15):
                self.driver.find_element_by_id("doctor-matrix-section").send_keys(Keys.PAGE_DOWN)
                time.sleep(1)
                print 'hello'
                print i
                i+= 1

使用循环是因为我不知道我需要按下 PAGE DOWN 按钮多长时间。 我还尝试了另一种方法:

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

我遵循的方法都没有奏效。任何帮助都会非常有用。

【问题讨论】:

  • 你试过 - driver.execute_script("window.scrollBy(0, document.body.scrollHeight);") 吗?当您的网页中有特定坐标时,将使用 scrollTo。 scrollBy 按您提供的像素数滚动,例如 document.body.scrollHeight
  • 我试过了,但根本不工作,该网站是使用 angularjs 开发的,这有什么影响吗?

标签: python selenium selenium-webdriver scrapy


【解决方案1】:

您引用的站点对我来说加载速度非常慢,并且很难针对您的特定应用程序进行测试。过去,我能够在无限加载场景中滚动的一种方法是使用 selenium 选择主体并将其发送到空格键按键。

bg = driver.find_element_by_css_selector('body')

bg.send_keys(Keys.SPACE)

您可能想尝试在for i in range(x) 循环中使用它来实现所需的滚动长度。

【讨论】:

  • 如果页面很长,只按一次空格不会让你到达它的底部。当你说把它放在循环中时你不知道 x 的值。
【解决方案2】:

我认为这就是您正在寻找的答案:

from selenium.webdriver.common.keys import Keys

elem = self.driver.find_element_by_id("doctor-matrix-section")
elem.send_keys(Keys.END)

这将导致网页一次性结束。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-23
    • 2023-01-23
    • 2014-12-12
    • 2015-09-05
    • 2018-01-16
    • 2017-12-07
    相关资源
    最近更新 更多