Ошибка JavaScript: arguments [0] .scrollIntoView не является функцией, использующей селен на python - PullRequest
0 голосов
/ 03 апреля 2019

Я использую Selenium на python, и я хотел бы выделить элемент, чтобы щелкнуть по нему. Везде, где я вижу, что для перехода непосредственно к элементу нужно использовать следующее:

driver = webdriver.Chrome()
driver.get(url)
element = driver.find_elements_by_class_name('dg-button')
driver.execute_script("return arguments[0].scrollIntoView();", element)

Но у меня есть эта ошибка: «ошибка javascript: arguments [0] .scrollIntoView не является функцией».

Что мне делать не так? Спасибо

Ответы [ 2 ]

1 голос
/ 03 апреля 2019

scrollIntoView() является частью DOM API, и вам необходимо запустить его на WebElement , но не на Списке из WebElement (s) .

Вам необходимо изменить find_element(s) на find_element:

element = driver.find_element_by_class_name('dg-button')
driver.execute_script("return arguments[0].scrollIntoView();", element)
0 голосов
/ 03 апреля 2019

Пожалуйста, используйте строку кода, указанную ниже, вместо той, которую вы используете:

driver.execute_script("arguments[0].scrollIntoView();", element)

Обновленный ответ:
Вы также можете использовать location_once_scrolled_into_view, это даеткоординаты элемента, но он также прокручивает элемент в поле зрения.Вы можете использовать его как:

element = driver.find_elements_by_class_name('dg-button')
element.location_once_scrolled_into_view
...