Selenium Page down by ActionChains

新手上路,请多包涵

我在 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 也不会。

原文由 Matej 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 702
2 个回答

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

     from selenium.webdriver.common.keys import Keys

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

希望它有效!

原文由 Chai 发布,翻译遵循 CC BY-SA 4.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)

原文由 Crystal Taggart 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏