ubuntu Selenium按操作链向下翻页

f87krz0w  于 2023-03-07  发布在  其他
关注(0)|答案(4)|浏览(134)

我在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。

z8dt9xmd

z8dt9xmd1#

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

from selenium.webdriver.common.keys import Keys

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

希望能成功!

sycxhyv7

sycxhyv72#

我必须点击主体才能让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)
mwyxok5s

mwyxok5s3#

#python
from selenium.webdriver.common.keys import Keys

driver.find_element_by_css_selector('body').send_keys(Keys.PAGE_DOWN)
mm5n2pyu

mm5n2pyu4#

我这样做只是为了滚动到底部。

#python

def scrollToBottom(driver):
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

相关问题