Selenium - 元素操作(2) - 页面滚动条
Selenium - 元素操作
函数滚动
-
一般元素定位,元素如果不在浏览器的可视位置(即可见只是不在可视位置),会自动把元素滚动到可视位置,但也有不会自己滚动的(比较少)。
- 那我们就可以用selenium的
location_once_scrolled_into_view
就可以滚动到某个元素处,也就是滚动直到这个元素出现在屏幕里。
# 获取页面元素 element = driver.find_element_by_id('kw') # 移动元素element对象,与当前窗口的中心对齐 ## 不需要增加括号 element.location_once_scrolled_into_view
- 那我们就可以用selenium的
JS滚动
-
除了代码方式以外,也可以用
js
来滚动窗口。五个常见方法:-
移动到元素 element对象的顶端 与 当前窗口的顶部对齐 :
# 获取页面元素 element = driver.find_element_by_id('kw') driver.execute_script("arguments[0].scrollIntoView();", element)
-
移动到元素 element对象 与 当前窗口的中心对齐:
element = driver.find_element_by_id('kw') driver.execute_script("arguments[0].scrollIntoView({block:'center', inline:'center'});", element)
-
滚动到元素 element对象的底端 与 当前窗口的底部对齐:
element = driver.find_element_by_id('kw') driver.execute_script("arguments[0].scrollIntoView(false);", element)
-
滚动到页面顶部:
driver.execute_script("window.scrollTo(0,0)")
-
滚动到页面底部:
driver.execute_script("window.scrollTo(0 ,document.body.scrollHeight)")
-