【发布时间】:2014-02-13 11:38:28
【问题描述】:
我有一个动态页面,当用户向下滚动页面时会加载产品。我想获取显示页面上呈现的产品总数。目前,我正在使用以下代码进行到底,直到显示所有产品。
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
这很好用,但是我想知道是否有更好的选择?
【问题讨论】:
-
大概有一个端点在合适的滚动发生时被调用......你能以滚动以外的方式操作它吗?
-
@Erki M. 我想这个问题与你们所指的问题有点不同。另外,我需要一个 Python 解决方案。 [我对 Java 中的硒一无所知]。我尝试在那篇文章中使用javascript。但它不起作用。错误:“WebDriverException:消息:u'html 未定义'”
标签: python selenium selenium-webdriver