我正在使用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不是很了解,所以我从别人那里复制了这些。有什么建议吗?
你可以尝试使用这个。
ht = self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
我想你可能需要 .scrollIntoView()
.
ht = self.driver.execute_script("""
arguments[0].scrollIntoView();
""", scroll_box2)