簡體   English   中英

javascript 錯誤:arguments[0].scrollTo 不是 function 在 python 上使用 Selenium

[英]javascript error: arguments[0].scrollTo is not a function using Selenium on python

使用 selenium 啟動我的 python 腳本時,我收到以下錯誤。

File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/errorhandler.py", line 245, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.JavascriptException: Message: javascript error: arguments[0].scrollTo is not a function

我不確定這里到底發生了什么 - 我會提供更多細節,但這是我正在運行的程序,這個錯誤來自哪里。

  def scroll_slow(self, scrollable_element, start=0, end=3600, step=100, reverse=False):
        if reverse:
            start, end = end, start
            step = -step

        for i in range(start, end, step):
            self.browser.execute_script("arguments[0].scrollTo(0, {})".format(i), scrollable_element)
            time.sleep(random.uniform(1.0, 2.6))

如果您發現任何不合適的地方,請提供幫助。

我試過將這部分注釋掉 - 但它弄亂了整個腳本。

Javascript 不能在任何 WebElement 上調用scrollTo() ,只能在Window object 上調用。


解決方案

可以有兩種方法:

  • 要么你scrollIntoView()元素:

     self.browser.execute_script("return arguments[0].scrollIntoView(true);", scrollable_element)
  • 或者您在Window object 上調用scrollTo()

     self.browser.execute_script("window.scrollTo(0, {});".format(i))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2025 STACKOOM.COM