使用selenium获取页面时,经常需要将滚动条拖到页面底部。下面总结了几种方法。location_once_scrolled_into_view#coding=utf-8fromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromselenium.webdriver.common。keysimportKeysfromselenium.webdriver.supportimportexpected_conditionsasECfromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.common.exceptionsimportTimeoutExceptionfromselenium.webdriver.common.action_chainsimportActionChainsbrowser:vechainsbrowser="Gromver.exe")wait=WebDriverWait(browser,10)browser.set_window_size(1400,900)importtimedefsearch():尝试:browser.get("https://www.taobao.com")target=wait.until(EC.presence_of_element_located((By.CSS_SELECTOR"body>div:nth-child(29)")))target.location_once_scrolled_into_viewexceptTimeoutException:search()search()页面底部的目标元素如果页面是ajax动态渲染的,页面的高度会发生变化在任何时候,所以这个方法可能不会跳到页面底部ActionChains#coding=utf-8fromseleniumimportwebdriverfromselenium。webdriver.common.byimportByfromselenium.webdriver.common.keysimportKeysfromselenium.webdriver.supportimportexpected_conditionsasECfromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.common.exceptionsimportTimeoutExceptionfromselenium.webdriver.common.action_chainsimportActionChainsbrowser=webdriver.Chrome("G:/dj/chromedriver.exe")wait=WebDriverWait(browser,10)browser.set_window_size(1400,900)importtimedefsearch():try:browser.get("https://www.taobao.com")total=wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,"body>div:nth-child(29)")))target=browser.find_element_by_css_selector('body>div:nth-child(29)')actions=ActionChains(browser)actions.move_to_element(target)actions.perform()exceptTimeoutException:search()search()如果页面是ajax动态渲染的,页面高度随时变化,所以这个方法很有可能跳过页面底部的js方法scrollIntoView#coding=utf-8fromselenium从sel导入webdriverenium.webdriver.common.byimportByfromselenium.webdriver.common.keysimportKeysfromselenium.webdriver.supportimportexpected_conditions作为ECfromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.common.exceptionsimportTimeoutlensException.webactfromseimportActionChainsbrowser=webdriver.Chrome("G:/dj/chromedriver.exe")wait=WebDriverWait(browser,10)browser.set_window_size(1400,900)importtimedefsearch():try:browser.get("https://www.taobao.com")total=wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,"body>div:nth-child(29)")))browser.execute_script('arguments[0].scrollIntoView(true);',total)exceptTimeoutException:search()search()如果页面是ajax动态渲染的,页面高度随时变化,所以这个方法可能无法跳转到页面底部js方法scrollBy#编码=utf-8fromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromselenium.webdriver.common.keysimportKeysfromselenium.webdriver.support导入texpected_conditions作为ECfromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.common.exceptionsimportTimeoutExceptionfromselenium.webdriver.common.action_chainsimportActionChainsbrowser=webdriver.Chrome("G:/dj/chromedriver.exe")wait(WebDriver,10)browser.set_window_size(1400,900)importtimedefsearch():尝试:browser.get("https://www.taobao.com")total=wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,"body>div:nth-child(29)")))foriinrange(15):浏览器。execute_script("window.scrollBy(0,1000)")时间。sleep(1)exceptTimeoutException:search()search()time.sleep必须添加适合ajax动态渲染的页面,多次跳转到页面底部send_keys(Keys.END)模拟发送空格键到页面#coding=utf-8fromseleniumimportwebdriverfromselenium.webdriver.common。通过importByfromselenium.webdriver.common.keysimportKeysfromselenium.webdriver.supportimportexpected_conditionsasECfromselenium.webdriver.support.ui从selenium.common.exceptions导入TimeoutException从selenium.webdriver.common.action_chains导入ActionChainsbrowser=webdriver.Chrome("G:/dj/chromedriver.exe")wait=WebDriverWait(browser,10)browser.set_window_size(1400,9)importtimedefsearch():try:browser.get("https://www.taobao.com")total=wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,"body>div:nth-child(29)")))foriinrange(5):browser.find_element_by_tag_name('body').send_keys(Keys.END)time.sleep(1)exceptTimeoutException:search()search()适用于ajax动态渲染页面,divided多次跳转到页面底部页面动态加载forajaxdriver=webdriver.Chrome()read_mores=driver.find_elements_by_xpath('//a[text()="loadmore"]')forread_moreinread_mores:driver.execute_script("arguments[0].scrollIntoView();",read_more)driver.execute_script("$(arguments[0]).click();",read_more)原文:https://rumenz.com/rumenbiji/蟒蛇3-硒-scrollToBottom.html
