【问题标题】:Selenium Page down by ActionChainsActionChains 的 Selenium Page down
【发布时间】:2016-09-13 13:19:22
【问题描述】:

我在 Ubuntu 16.04 x64 上的 python 3.5 中通过 Selenium 的 ActionChains 使用 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 也不返回。

【问题讨论】:

  • 您要向下滚动到特定元素吗??
  • 但是可以使另一个函数单击另一个 div 并且它会起作用。但这远非优雅,不能重复使用。
  • 不,我只想向下滚动 PageDown 偏移量,因为它是静态页面。

标签: python selenium ubuntu


【解决方案1】:

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

    from selenium.webdriver.common.keys import Keys

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

希望它有效!

【讨论】:

  • 太好了,这似乎有效。我猜,每次加载页面并且无法重用时,动作链似乎都会加载。谢谢!
  • 记得导入Keys和from selenium.webdriver.common.keys import Keys
  • @J-a-n-u-s 谢谢!我只是来这里寻找在哪里导入这个。
【解决方案2】:

我必须单击正文才能使 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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-07
    • 2018-09-14
    • 2020-03-18
    • 2016-05-16
    相关资源
    最近更新 更多