Selenium аргумент [0] .scroll.to функция не работает во второй раз - PullRequest
0 голосов
/ 24 апреля 2020

Я использую python для селена, но мне нужно прокрутить, используя функцию javascript. Это работает прямо здесь.

from selenium import webdriver
from time import sleep
from secrets import pw
from secrets import email
import selenium
from selenium.webdriver.common.by import By

   scroll_box = self.driver.find_element_by_xpath('/html/body/div[3]/div/div[3]/div[4]/div[1]/div')
                last_ht, ht = 0, 1
                while last_ht != ht:
                    last_ht = ht
                    sleep(1)
                    ht = self.driver.execute_script("""
                        arguments[0].scrollTo(0, arguments[0].scrollHeight); 
                        return arguments[0].scrollHeight;
                        """, scroll_box)

По какой-то причине этот:

scroll_box2 = self.driver.find_elements_by_class_name('main-view-container__scroll-node')
        last_ht, ht = 0, 1
        while last_ht != ht:
            last_ht = ht
            sleep(1)
            ht = self.driver.execute_script("""
                arguments[0].scrollTo(0, arguments[0].scrollHeight); 
                return arguments[0].scrollHeight;
                """, scroll_box2)

Дайте эту ошибку:

Message: javascript error: arguments[0].scrollTo is not a function

ПОЧЕМУ? Мне нужно снова прокрутить, но это не работает. Я не знаю java хорошо, поэтому я копирую их от других. Есть предложения?

Ответы [ 2 ]

1 голос
/ 24 апреля 2020

Вы можете попробовать использовать это:

ht = self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
0 голосов
/ 24 апреля 2020

Я думаю, вы, возможно, захотите .scrollIntoView().

ht = self.driver.execute_script("""
                arguments[0].scrollIntoView();
                """, scroll_box2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...