代码:
self.driver.execute_script("arguments[0].scrollIntoView()", final_side)
这给了我错误日志:
在铬中:
File "...Python36libsite-packagesseleniumwebdriverremotewebdriver.py", line 635, in execute_script 'args': converted_args})['value'] File "...Python36libsite-packagesseleniumwebdriverremotewebdriver.py", line 320, in execute self.error_handler.check_response(response) File "...Python36libsite-packagesseleniumwebdriverremoteerrorhandler.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
在火狐中:
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
平台=视窗 NT 6.1.7601 SP1 x86_64
此错误消息...
selenium.common.exceptions.JavascriptException: Message: TypeError: arguments[0] is null
。意味着称为参数[0]的WebElement为空,即不包含任何引用。
您的主要问题是您所引用的WebElementfinal_side不包含对网页中任何元素的任何引用。
如果没有前面的命令和相关 HTML,很难猜测错误的确切原因。
溶液
一个可能的解决方案是诱导WebDriverWait,以使所需的元素在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)