Bootstrap

ajax 填充div 滚动,当使用ajax加载pythonselenium中的数据时如何滚动div

做一个循环,每次迭代滚动到列表中最后一个“review”的视图(对我有用):from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.support.wait import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()

driver.get("https://www.google.com/search?q=a1%20plumbing%20boise&gws_rd=ssl#gws_rd=ssl&lrd=0x54aeff4cb0b24461:0x23720b81e2bed658,1")

# wait for reviews to appear

wait = WebDriverWait(driver, 10)

wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "span.review-snippet")))

while True:

reviews = driver.find_elements_by_css_selector("div._ju")

driver.execute_script("arguments[0].scrollIntoView();", reviews[-1])

注意这里的循环是无止境的-您需要弄清楚如何退出循环。例如,您可以统计滚动到视图前后的评论数,如果没有加载更多的评论,则退出循环。或者,你可以检查旋转圈是否存在。一旦它没有显示在滚动-这意味着没有更多的评论加载左边。在

这里有一个方法可以检测到没有更多的评论可以加载-检查下一次滚动后评论对话框的滚动高度是否没有改变-这与人类检测它的方式很接近:

^{pr2}$

我不喜欢这里有time.sleep(),希望你有更好的主意来解决这个问题。在

;