Прокрутите вниз, если на полосе прокрутки нет тега с Selenium для python

#python #python-3.x #selenium #selenium-webdriver

#python #python-3.x #селен #selenium-webdriver

Вопрос:

Я хотел прокрутить элемент вниз, где на полосе прокрутки нет тега / элемента. Я провел довольно много исследований по этому вопросу, но не смог найти ничего подходящего для этого конкретного случая. Я использую Selenium для Python, мы говорим о сайте «www.swap.gg «, это сайт для скинов csgo, и для того, чтобы загрузить каждый предмет из бота, вам нужно прокрутить вниз в элементе «Инвентарь бота». Сайт выглядит так, при использовании F12 в браузере он выглядит так, соответствующий элемент

Там нет ключа, который вы могли бы использовать для прокрутки вниз, поэтому .send_keys() команда случайно не работает. Я также попробовал touchactions.scroll_from_element(element,xoffset,yoffset) , но тоже не повезло. Я использую Firefox в качестве webdriver, если это имеет значение. Xpath элемента — «/html/body/ div / div 1 / section 1 / div [2] / div [3] / div [2] / div [2]»
Селектор CSS — «div.is-paddingless: nth-child (3)»
Есть идеи?

Ответ №1:

  • Найдите родительский div
     element = driver.find_element_by_xpath('/html/body/div/div[1]/section[1]/div[2]/div[3]/div[2]/div[2]')
     
  • Прокрутите вниз, чтобы запустить перезагрузку
     driver.execute_script("arguments[0].scrollBy(0, 500)", element)
     

 import selenium
import selenium.webdriver
import time

driver = selenium.webdriver.Chrome()
driver.get('https://swap.gg/')

element = driver.find_element_by_xpath('/html/body/div/div[1]/section[1]/div[2]/div[3]/div[2]/div[2]')
for i in range(20):
    driver.execute_script("arguments[0].scrollBy(0, 500)", element)
    time.sleep(2)