Selenium argument[0].scroll.to函数第二次失效了

问题描述 投票:0回答:1

我正在使用python进行selenium,但我需要使用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不是很了解,所以我从别人那里复制了这些。有什么建议吗?

java python selenium sublimetext3
1个回答
1
投票

你可以尝试使用这个。

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

0
投票

我想你可能需要 .scrollIntoView().

ht = self.driver.execute_script("""
                arguments[0].scrollIntoView();
                """, scroll_box2)
© www.soinside.com 2019 - 2024. All rights reserved.