Selenium Page by ActionChains

时间:2016-09-13 13:19:22

标签: python selenium ubuntu

我在使用函数在Ubuntu 16.04 x64上通过Selenium的ActionChains在python 3.5中使用PageDown键向下滚动时遇到问题。

我想要的是我的程序被PageDown向下滚动两次,所以它最后到达底部,所以我可以让所选元素始终可见。 尝试使用Keys.END创建另一个函数,但它没有用,所以我认为它与ActionChains没有关闭或其他什么有关。

该功能如下所示:

from selenium.webdriver.common.action_chains import ActionChains

...

def scrollDown(self):
    body = browser.find_element_by_xpath('/html/body')
    body.click()
    ActionChains(browser).send_keys(Keys.PAGE_DOWN).perform()

我在另一个文件中使用它:

mod.scrollDown()

我第一次使用它时,它会向下滚动,就像按下PageDown键一样,而另一次没有任何反应。 无论我在哪里调用它,第二个(或第三个......)时间都不会执行。 尝试手动完成并按下PageDown按钮两次,按预期工作。 控制台不会返回任何错误,而不是IDE。

2 个答案:

答案 0 :(得分:11)

也许,如果它与动作链有关,你可以这样做:

body = browser.find_element_by_css_selector('body')
body.send_keys(Keys.PAGE_DOWN)

希望它有效!

答案 1 :(得分:0)

我必须单击主体才能使Keys.PAGE_DOWN起作用,但不需要使用操作链:

from selenium.webdriver.common.keys import Keys

body = driver.find_element_by_css_selector('body')
body.click()
body.send_keys(Keys.PAGE_DOWN)