selenium.common.exceptions.JavascriptException: Сообщение: TypeError: arguments [0] является нулевым - PullRequest
0 голосов
/ 30 августа 2018

Код:

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

Платформа = Windows NT 6.1.7601 SP1 x86_64

1 Ответ

0 голосов
/ 30 августа 2018

Это сообщение об ошибке ...

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

... подразумевает, что WebElement , именуемый arguments [0] , равен null , т.е. не содержит никаких ссылок.

Ваша основная проблема - WebElement , который вы именуете final_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)
...