我在使用函数在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。
答案 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)