
[英]javascript error: arguments[0].scrollTo is not a function using Selenium on python
[英]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.