Selenium Несколько раз прокрутите вниз альбом Facebook

Я пытаюсь очистить альбом Facebook, но на странице есть две полосы прокрутки, и я хочу знать, как найти внутреннюю полосу прокрутки, чтобы она могла автоматически прокручиваться вниз

я пытаюсь использовать

driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")

но это не работает. я тоже пробовал

driver.find_element(By.TAG_NAME,"body").send_keys(Keys.PAGE_DOWN)

но я должен сначала щелкнуть полосу прокрутки вручную, чтобы она прокручивалась.

14 Задание: Типы данных и структуры данных Python для DevOps
14 Задание: Типы данных и структуры данных Python для DevOps
проверить тип данных используемой переменной, мы можем просто написать: your_variable=100
Python PyPDF2 - запись метаданных PDF
Python PyPDF2 - запись метаданных PDF
Python скрипт, который будет записывать метаданные в PDF файл, для этого мы будем использовать PDF ридер из библиотеки PyPDF2 . PyPDF2 - это...
Переменные, типы данных и операторы в Python
Переменные, типы данных и операторы в Python
В Python переменные используются как место для хранения значений. Пример переменной формы:
Почему Python - идеальный выбор для проекта AI и ML
Почему Python - идеальный выбор для проекта AI и ML
Блог, которым поделился Harikrishna Kundariya в нашем сообществе Developer Nation Community.
Как автоматически добавлять котировки в заголовки запросов с помощью PyCharm
Как автоматически добавлять котировки в заголовки запросов с помощью PyCharm
Как автоматически добавлять котировки в заголовки запросов с помощью PyCharm
Анализ продукта магазина на Tokopedia
Анализ продукта магазина на Tokopedia
Tokopedia - это место, где продавцы могут продавать свои товары. Товар должен быть размещен на витрине, чтобы покупателям было легче найти товар...
1
0
120
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Эта команда работала для меня:

driver.execute_script("window.scrollBy(0, arguments[0]);", 600)

Весь код, который я использовал:

import time

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
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

options = Options()
options.add_argument("start-maximized")
options.add_argument("--disable-infobars")
options.add_argument("start-maximized")
options.add_argument("--disable-extensions")

# Pass the argument 1 to allow and 2 to block
options.add_experimental_option(
    "prefs", {"profile.default_content_setting_values.notifications": 2}
)

webdriver_service = Service('C:\webdrivers\chromedriver.exe')
driver = webdriver.Chrome(options=options, service=webdriver_service)
wait = WebDriverWait(driver, 20)

url = "https://www.facebook.com/"
driver.get(url)
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "[name='email']"))).send_keys(my_email)
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "[name='pass']"))).send_keys(my_password)
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "[name='login']"))).click()

time.sleep(1)
url = "album address"
driver.get(url)
for i in range(10):
    image = wait.until(EC.element_to_be_clickable((By.XPATH, "(//a[@aria-label='Photo album photo'])[last()]")))
    image.location_once_scrolled_into_view
    time.sleep(1)

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

Arthur 15.11.2022 10:58

Я попробую, но не сейчас, так как сейчас я занят своей работой.

Prophet 15.11.2022 11:02

Без проблем. я очень ценю это

Arthur 15.11.2022 11:11

Я обновил ответ. Он не прокручивается до конца, а прокручивается несколько раз. Вы можете добавить туда условие остановки самостоятельно.

Prophet 15.11.2022 12:19

Другие вопросы по теме