@mollya

Как проскролить в определенной облачи экран в selenium?

Такая ситуация, что мне надо, чтобы selenium навел курсор в правую часть экрана где участники в discord и проскролил вниз. Я пробовал всеми методами, но не получилось. Сейчас прикреплю скриншот, чтобы стало понятно в какой облачи мне надо проскролить
65a7c475cce2f196036781.png
  • Вопрос задан
  • 157 просмотров
Решения вопроса 1
Mike_Ro
@Mike_Ro
Python, JS, WordPress, SEO, Bots, Adversting
1. Переход в дискорд.
2. Ручная авторизация.
3. Клик по кнопке с друзьями, для открытия боковой панели.
4. Перемещение курсора и скролл боковой панели с друзьями путем внедрений js скрипта конкретному элементу (не настоящий скролл колесиком или свайпом).
5. Выход.

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

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.common.exceptions import NoSuchElementException
import time

url = 'https://discord.com/channels/1097401827202445382/1097674067601010709'

# driver
driver = webdriver.Chrome()
driver.get(url)

print('your manual authorization, the script is waiting for 30 seconds')
time.sleep(30)

try:
    print('find and click element button friends')
    button_element = driver.find_element(By.XPATH, '//*[@id="app-mount"]/div[2]/div[1]/div[1]/div/div[2]/div/div/div/div/div[3]/section/div/div[2]/div[4]')
    button_element.click()
except NoSuchElementException:
    print('error: element button friends not found')
    time.sleep(5)
    driver.quit()
    exit()

time.sleep(5)

try:
    print('find scroll element')
    element = driver.find_element(By.XPATH, '//*[@id="app-mount"]/div[2]/div[1]/div[1]/div/div[2]/div/div/div/div/div[3]/div[2]/div[2]/aside/div')
except NoSuchElementException:
    print('error: scroll element not found')
    time.sleep(5)
    driver.quit()
    exit()

print('move cursor to element')
action = ActionChains(driver)
action.move_to_element(element).perform()

print('scroll down')
driver.execute_script('arguments[0].scrollTop += 300', element)

print('mission complete, thanks to Uncle Misha')
time.sleep(5)

print('exit')
driver.quit()

# your manual authorization, the script is waiting for 30 seconds
# find and click element button friends
# find scroll element
# move cursor to element
# scroll down
# mission complete, thanks to Uncle Misha
exit
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы