selenium.common.exceptions.JavascriptException:消息:TypeError:arguments [0]为空

时间:2018-08-30 12:10:45

标签: python selenium selenium-webdriver selenium-chromedriver geckodriver

代码:

self.driver.execute_script("arguments[0].scrollIntoView()", final_side)

这给了我错误日志:

  • 在Chrome中:

    File "...\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 635, in execute_script 'args': converted_args})['value']
    File "...\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 320, in execute
    self.error_handler.check_response(response)
    File "...\Python36\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
    selenium.common.exceptions.WebDriverException: Message: unknown error: Cannot read pro'scrollIntoView' of null
    
  • 在Firefox中:

    raise exception_class(message, screen, stacktrace)
    selenium.common.exceptions.JavascriptException: Message: TypeError: arguments[0] is null
    

浏览器信息:chrome = 68.0.3440.106

驱动程序信息:chromedriver = 2.41.578737

Platform = Windows NT 6.1.7601 SP1 x86_64

1 个答案:

答案 0 :(得分:0)

此错误消息...

selenium.common.exceptions.JavascriptException: Message: TypeError: arguments[0] is null

...表示 WebElement 称为参数[0] ,即不包含任何引用。

您的主要问题是 WebElement ,您引用的是 final_side ,其中不包含对该网页中任何元素的任何引用。

没有前面的命令和相关的HTML,很难猜测错误的确切原因。

解决方案

可能的解决方案是诱使 WebDriverWait 使所需的{em>元素在HTML DOM中可见,如下所示:

element = WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "element_css")))
self.driver.execute_script("return arguments[0].scrollIntoView(true);", element)