使用硒滚动到网页底部时出错



我想滚动到使用Selenium和Firefox驱动程序的页面底部。

这是我到目前为止所拥有的:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
browser=webdriver.Firefox()
browser.get('http://nostarch.com')
htmlElem=browser.find_element_by_tag_name('html')
htmlElem.send_keys(Keys.END)    #scrolls to bottom

不幸的是,我的代码失败并出现以下异常:

Traceback (most recent call last):
  File "<pyshell#26>", line 1, in <module>
    htmlElem.send_keys(Keys.END)    #scrolls to bottom
  File "C:UsersacademyAppDataLocalProgramsPythonPython35libsite-
packagesseleniumwebdriverremotewebelement.py", line 352, in send_keys
    'value': keys_to_typing(value)})
  File "C:UsersacademyAppDataLocalProgramsPythonPython35libsite-
packagesseleniumwebdriverremotewebelement.py", line 501, in _execute
    return self._parent.execute(command, params)
  File "C:UsersacademyAppDataLocalProgramsPythonPython35libsite-
packagesseleniumwebdriverremotewebdriver.py", line 308, in execute
    self.error_handler.check_response(response)
  File "C:UsersacademyAppDataLocalProgramsPythonPython35libsite-
packagesseleniumwebdriverremoteerrorhandler.py", line 194, in 
 check_response
    raise exception_class(message, screen, stacktrace)
 selenium.common.exceptions.ElementNotInteractableException: Message: 
 Element is not visible

使用WebDriverWait(显式等待(直到元素可见 我对 Python 不太了解,所以只给出一般语法

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

browser=webdriver.Firefox()
browser.get('http://nostarch.com')
htmlElem=WebDriverWait(browser, 5).until(
    EC.presence_of_element_located((By.find_element_by_tag_name, "html"))
htmlElem.send_keys(Keys.END)

要使用Selenium滚动到页面底部,您可以使用:

  • driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    
  • 爪哇岛

    ((JavascriptExecutor)driver).executeScript("window.scrollTo(0, document.body.scrollHeight);");
    

最新更新