selenium中JS如何处理滚动条

前言

什么是JS?

JS就是JavaScript;

JavaScript 是世界上最流行的脚本语言;

JavaScript 是属于 web 的语言,它适用于 PC、笔记本电脑、平板电脑和移动电话;

JavaScript 被设计为向 HTML 页面增加交互性;

许多 HTML 开发者都不是程序员,但是 JavaScript 却拥有非常简单的语法。几乎每个人都有能力将小的 JavaScript 片段添加到网页中。

JS传送门:http://www.w3school.com.cn/b.asp

一、JS处理滚动条问题

1、滚动条回到顶部:

js="var q=document.getElementById('id').scrollTop=0"

driver.execute_script(js)

或者

js="var q=document.documentElement.scrollTop=0"

driver.execute_script(js)

2、滚动条拉到底部:

js="var q=document.getElementById('id').scrollTop=10000"

driver.execute_script(js)

或者

js="var q=document.documentElement.scrollTop=10000"

driver.execute_script(js)

3、滚动条拉到指定位置(具体元素):

target = driver.find_element_by_id("id_keypair")

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

4、通过模拟键盘DOWN(↓)来拖动:

driver.find_element_by_id("id").send_keys(Keys.DOWN)

image

5、scrollTo函数

--scrollHeight 获取对象的滚动高度。

--scrollLeft 设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离。

--scrollTop 设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离。

--scrollWidth 获取对象的滚动宽度。

滚动到底部

js = "window.scrollTo(0,document.body.scrollHeight)"

driver.execute_script(js)

滚动到顶部

js = "window.scrollTo(0,0)"

driver.execute_script(js)

image

二、参考代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File    : jss.py
# @Software: PyCharm
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
url = 'http://www.cnblogs.com/sanzangTst/'
browser = webdriver.Firefox()
browser.get(url)
time.sleep(3)
# 拉到底部
js="var q=document.documentElement.scrollTop=10000"
browser.execute_script(js)

# 回到顶部
js="var q=document.documentElement.scrollTop=0"
browser.execute_script(js)

# 拖到指定位置
target = browser.find_element_by_id("homepage1_HomePageDays_DaysList_ctl05_DayList_TitleUrl_0")
browser.execute_script("arguments[0].scrollIntoView();", target)

#滚动到底部
js = "window.scrollTo(0,document.body.scrollHeight)"
browser.execute_script(js)

#滚动到顶部
js = "window.scrollTo(0,0)"
browser.execute_script(js)

今天的分享到这里,对自动化感兴趣的同学,欢迎加QQ群175317069,一起学习,相互讨论。

群内已经有小伙伴将知识体系整理好(源码,笔记,PPT,学习视频),欢迎加群免费领取资料

分享给喜欢自动化,有梦想成为大牛的Tester们,希望能够帮助到你们。


版权声明:本文为TestingGDR原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。