WebDriver高级应用——操作Web页面的滚动条

时间:2023-03-08 22:10:05

目的:

(1)滑动页面的滚动条到页面最下方

(2)滑动页面的滚动条到页面某个元素

(3)滑动页面的滚动条向下移动某个数量的像素

测试的网址:

http://www.seleniumhq.org/

代码如下:

from selenium import webdriver
import unittest
import traceback #导入堆栈类
import time class TestDemo(unittest.TestCase): def setUp(self):
#启动Chrome浏览器
self.driver = webdriver.Chrome()
self.driver.implicitly_wait(30) def test_scroll(self):
url = "http://www.seleniumhq.com/"
#访问selenium官网首页
self.driver.get(url)
try:
#使用JavaScript的scrollTo函数和document.body.scrollHeight参数
#将页面的滚动条滑动到页面的最下方
self.driver.execute_script("window.scrollTo(100, document.body.scrollHeight);")
#停顿5秒用于验证滚动条是否滑动到指定位置
time.sleep(5) #使用JavaScript的scrollIntoView函数将被遮挡的元素滚动到可见屏幕上
#scrollIntoView(true)表示将元素滚动屏幕中间
#scrollIntoView(false)表示将元素滚动到屏幕底部
self.driver.execute_script("document.getElementById('choice').scrollIntoView(true);")
#停顿5秒用于验证滚动条是否滑动到指定位置
time.sleep(5) #使用JavaScript的scrollBy方法,使用0和400横坐标参数
self.driver.execute_script("window.scrollBy(0,400);")
#停顿5秒用于验证滚动条是否滑动到指定位置
time.sleep(3)
except Exception as e:
#打印异常堆栈信息
print(traceback.print_exc()) def tearDown(self):
#退出Chrome浏览器
self.driver.quit() if __name__ == '__main__':
unittest.main()