python = "^3.12.7"
selenium = "^4.30.0" < /p>
< /blockquote>
Инициализация переменной "Драйвер": < /p>
Код: Выделить всё
from time import sleep
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.support.select import Select
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('https://www.instagram.com/')
sleep(3)
# * * *
# Sign in code here
# * * *
# chose user account for example:
driver.get('https://www.instagram.com/geeks_for_geeks/followers/')
sleep(3)
driver.find_element(By.PARTIAL_LINK_TEXT, 'followers').click()
print('4')
# set followers pop-up list to new variable (i checked three XPATH based on the page code source, see img below):
# pop_up_window = driver.find_element(By.XPATH, '/html/body/div[4]/div[2]/div/div/div[1]/div/div[2]/div/div/div/div/div[2]/div/div/div[3]')
# pop_up_window = driver.find_element(By.XPATH, '/html/body/div[4]/div[2]/div/div/div[1]/div/div[2]/div/div/div/div/div[2]/div/div/div[3]/div[1]')
pop_up_window = driver.find_element(By.XPATH, '/html/body/div[4]/div[2]/div/div/div[1]/div/div[2]/div/div/div/div/div[2]/div/div/div[3]/div[1]/div')
Тогда я использую несколько вариантов различий для попытки прокрутить вниз:
1 -е. - Использует Actionchains от selenium.webdriver.common.action_chains:
Код: Выделить всё
num_chains = 10
for _ in range(num_chains):
print('=========== Chains Start =================')
ActionChains(driver).send_keys(Keys.END).perform()
< /code>
2nd. - Использует Javascript:
v2.1
while True:
driver.execute_script("arguments[0].scrollTop = arguments[0].scrollHeight", pop_up_window)
sleep(2)
Код: Выделить всё
while True:
driver.execute_script('arguments[0].scrollTop = arguments[0].scrollTop + arguments[0].offsetHeight;', pop_up_window)
sleep(2)
num_chains = 10
followers_step = 10
for _ in range(num_chains):
driver.execute_script("arguments[0].scrollTop = arguments[1]", pop_up_window, followers_step)
followers_step += followers_step
sleep(3)
< /code>
Наконец-то я получаю всплывающее окно последователей, в котором я должен сделать прокрутку вниз, но слайдер для прокрутки справа не появляется, и список пользователей не прокручивается, на выводе я всегда получаю тот же результат, который сразу же открывался в всплывающем списке последующих (заметил, что когда процесс прокрутки начинается-кнопка закрытия всегда выделяется):
И я всегда получаю один и тот же результат без прокрутки:
Подробнее здесь: https://stackoverflow.com/questions/795 ... scroll-dow