Как прокрутить вниз на моей странице через Selenium и Python? - PullRequest
0 голосов
/ 01 декабря 2018

Попытка прокрутить вниз до нижней части страницы https://silpo.ua/offers/?categoryId=13, но результата нет (нет движений)

Мой код:

import bs4
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

URL = "https://silpo.ua/offers/?categoryId=13"
driver = webdriver.Firefox()
driver.get(URL)

page = driver.find_element_by_tag_name("html")
page.send_keys(Keys.PAGE_DOWN)

html = driver.page_source

Ответы [ 2 ]

0 голосов
/ 01 декабря 2018

Существует несколько способов прокрутки вниз до нижней части страницы.В соответствии с URL https://silpo.ua/offers/?categoryId=13 сообщение copyright находится внизу страницы.Таким образом, вы можете использовать метод scrollIntoView() для прокрутки сообщения copyright в Viewport следующим образом:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

URL = "https://silpo.ua/offers/?categoryId=13"
driver = webdriver.Firefox(executable_path=r'C:\WebDrivers\geckodriver.exe')
driver.get(URL)
copyright = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.copyrights")))
driver.execute_script("return arguments[0].scrollIntoView(true);", copyright)
0 голосов
/ 01 декабря 2018

Вы можете перейти к элементу класса copyright внизу, используя actions.move_to_element

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

url ="https://silpo.ua/offers/?categoryId=13"
driver = webdriver.Chrome()
driver.get(url)
element = driver.find_element_by_css_selector(".copyrights")
actions = ActionChains(driver)
actions.move_to_element(element).perform()

Вы можете изменить это, например, сказать, что хотите перейти к последнему продукту:

element = driver.find_elements_by_css_selector(".product-list__item-content")[-1]
actions = ActionChains(driver)
actions.move_to_element(element).perform()
...