selenium调用 JavaScript

WebDiver 不能操作本地 Windows 控件,但对于浏览器上的控件也不是都可以操作的。比哪浏览器上
的滚动条,虽然 WebDriver 提供操作浏览器的前进和后退按钮,但对于滚动条并没有提供相应用的方法。
那么在这种情况下就可以借助 JavaScript 方法来控制浏览器滚动条。WebDriver 提供了 execute_script()方法
来执行 JavaScript 代码。
一般用到操作滚动条的会两个场景:

  • 注册时的法律条文的阅读,判断用户是否阅读完成的标准是:滚动条是否拉到最下方。
  • 要操作的页面元素不在视觉范围,无法进行操作,需要拖动滚动条。

用于标识滚动条位置的代码

……
<body onload= "document.body.scrollTop=0 ">
<body onload= "document.body.scrollTop=100000 ">
……

document.body.scrollTop
网页被卷去的高。scrollTop 设置或获取滚动条与最顶端之间的距离。如果想让滚动条处于顶部,那么
可以设置 scrollTop 的值为 0,如果想让滚动条处于最底端,可以将这个值设置的足够大,大个窗口的高度
即可。scrollTop 的值以像素为单位。

from selenium import webdriver
import time
#访问百度
driver=webdriver.Firefox()
driver.get("http://www.baidu.com")
#搜索
driver.find_element_by_id("kw").send_keys("selenium")
driver.find_element_by_id("su").click()
time.sleep(3)
#将页面滚动条拖到底部
js="var q=document.documentElement.scrollTop=10000"
driver.execute_script(js)
time.sleep(3)
#将滚动条移动到页面的顶部
js_="var q=document.documentElement.scrollTop=0"
driver.execute_script(js_)
time.sleep(3)
driver.quit()

通过浏览器打开百度进行搜索,搜索的一屏无法完全显示将会出现滚动条。这个时候就可以通过
JavaScript 代码控制滚动条在任意位置,需要改变的就是 scrollTop 的值。通过 execute_script()方法来执行
这段 JavaScript 代码。

当然,JavaScript 的作用不仅于此,它同样可操作页面上的元素或让,或让这个元素隐藏。学习和使
用 JavaScript 不仅可以让你对前端技术有更深的认识,还可以让你对 web 页面上元素的操作变得游刃有余。 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值