我有一個動態頁面,當用戶向下滾動頁面時加載產品。我想獲取顯示頁面上呈現的產品總數。目前我正在使用下面的代碼,直到顯示所有產品。使用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