代码:
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
答案 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)