繁体   English   中英

javascript 错误:arguments[0].scrollIntoView 不是在 python 上使用 selenium 的函数

[英]javascript error: arguments[0].scrollIntoView is not a function using selenium on python

我在 python 上使用 Selenium,我想滚动到一个元素来点击它。 在我看到的任何地方,直接转到元素的正确做法是使用:

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 不是一个函数”。

我做错了什么? 谢谢

请使用下面提到的代码行而不是您正在使用的代码行:

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

scrollIntoView()是 DOM API 的一部分,您需要在WebElement上运行它,而不是在List of WebElement(s)上运行它。

您需要将find_element(s)更改为find_element

element = driver.find_element_by_class_name('dg-button')
driver.execute_script("return arguments[0].scrollIntoView();", element)

如果您需要在元素列表上使用它,那么您可以使用 Python 覆盖它,这样您就可以导航到您想要的元素

例如列表的第一个元素

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

例如列表的最后一个元素

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

希望它有帮助:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2025 STACKOOM.COM