我有一个动态页面,当用户向下滚动页面时加载产品。我想获取显示页面上呈现的产品总数。目前我正在使用下面的代码,直到显示所有产品。使用Selenium Webdriver滚动页面
elems = WebDriverWait(self.driver, 30).until(EC.presence_of_all_elements_located((By.CLASS_NAME, "x")))
print len(elems)
a = len(elems)
self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(4)
elem1 = WebDriverWait(self.driver, 30).until(EC.presence_of_all_elements_located((By.CLASS_NAME, "x")))
b = len(elem1)
while b > a:
self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(4)
elem1 = WebDriverWait(self.driver, 30).until(EC.presence_of_all_elements_located((By.CLASS_NAME, "x")))
a = b
b = len(elem1)
print b
这是工作得很好,只是我想知道是否有这样做的更好的选择吗?
大概有一个终端会在适当的滚动发生时被调用......您可以用滚动以外的其他方式操作它吗? –
可能重复[滚动元素到视图与硒](http://stackoverflow.com/questions/3401343/scroll-element-into-view-with-selenium) –
@Erki M.我想这个问题有点不同从你们所指的那一个。另外我需要一个Python解决方案。 [我对Java的硒并无任何想法]。我试图在该帖子中使用JavaScript。但它不起作用。错误:“WebDriverException:消息:u'html未定义'” – Saheb