使用selenium和python向下滚动html表

时间:2014-07-30 15:31:19

标签: html python-2.7 selenium-webdriver

我正在尝试向下滚动HTML表,直到最后一行可见,该表最初加载大约20行,然后在向下滚动时加载更多行。我正在使用selenium webdriver和python来自动化这个过程,但到目前为止我被困住了,因为我的代码在下面向下滚动整个页面,而不是在函数中作为参数传递的特定表。

这是我的代码 要滚动的Web元素作为参数传递,以及它将向下滚动的次数

def scroll_down_element(self, element, times):
    try:
        action_chain = ActionChains(self.browser)
        counter = 0
        while(counter < times):
            element.send_keys(Keys.ARROW_DOWN)
            counter += 1
            sleep(0.25)
    except Exception as e:
        print 'error scrolling down web element', e

欢迎所有建议

2 个答案:

答案 0 :(得分:1)

这是我在尝试javascript和其他selenium方法的几种不同组合后使用的代码。空间向下滚动比ARROW_DOWN或DOWN键更深。

def scroll_down_element(self, element, times):
    try:
        action = ActionChains(self.browser)
        action.move_to_element(element).perform()
        element.click() 
        for _ in range(times):
            element.send_keys(Keys.SPACE)
            sleep(0.1)
    except Exception as e:
        print 'error scrolling down web element', e

答案 1 :(得分:0)

使用JS在Web元素中滚动。下面给出一个例子:

def scroll_down_element(self, element):
    try:
        self.browser.execute_script("arguments[0].scrollTop = 200", element)

    except Exception as e:
        print 'error scrolling down web element', e

希望这有帮助!