2016-02-09 3 views
1

Попытка прокрутить вниз до нижней части страницы с помощью selenium-webdriver python, чтобы больше загружать продукты.Selenium python не может прокручиваться вниз

driver = webdriver.Firefox() 
driver.get('https://www.woolworths.com.au/Shop/Browse/back-to-school/free-school-labels') 
driver.implicitly_wait(100) 
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") 
time.sleep(100) 
driver.quit() 

Веб-страница загружается, но не изменяется.

Я что-то упустил?

ответ

1

Вы можете попробовать эти move_up и move_down функцию:

driver.maximize_window() 
driver.get('https://www.woolworths.com.au/Shop/Browse/back-to-school/free-school-labels') 
driver.implicitly_wait(15) 
centerPanel = driver.find_element_by_css_selector("#center-panel > div[class*='hideScroll-wrapper']") 
jsScript = """ 
     function move_up(element) { 
      element.scrollTop = element.scrollTop - 1000; 
     } 

     function move_down(element) { 
      element.scrollTop = element.scrollTop + 1000; 
     } 

     move_down(arguments[0]); 
     move_down(arguments[0]); 
     """ 
driver.execute_script(jsScript, centerPanel) 

time.sleep(3) 

jsScript = """ 
     function move_up(element) { 
      element.scrollTop = element.scrollTop - 1000; 
     } 

     function move_down(element) { 
      console.log('Position before: ' + element.scrollTop); 
      element.scrollTop = element.scrollTop + 1000; 
      console.log('Position after: ' + element.scrollTop); 
     } 

     move_up(arguments[0]); 
     """ 
driver.execute_script(jsScript, centerPanel) 
1

Вы можете попробовать использовать Action Chains

element = driver.find_element_by_id("id") # the element you want to scroll to 
ActionChains(driver).move_to_element(element).perform() 
+0

Это работает. Спасибо – Youbloodywombat

2

Я просто попытался с этим подходом, и он работал на меня:

element = driver.find_element_by_xpath("//div[@class='center-content']") 
driver.execute_script("return arguments[0].scrollIntoView(0, document.documentElement.scrollHeight-10);", element) 

Сначала вы выбираете div элемент страницы, который вы хотите, чтобы прокрутить вниз , а затем прокрутите вниз внутри этого элемента.

OBS: Я добавил смещение при определении scrollHeight, потому что если вы прокрутите до абсолютного дна, он не загрузит больше объектов. Он начинает загружать каталог, когда вы приближаетесь ближе к дну, не дойдя до него.

document.documentElement.scrollHeight-10 
+0

Это тоже сработало. – Youbloodywombat

Смежные вопросы