Python+selenium之调用JavaScript
2024-09-04 00:01:16
webdriver提供了操作浏览器的前进和后退的方法,但是对于浏览器公东条并没有提供相应的操作方法。于是就需要借助JavaScript来控制浏览器的滚动条。webdriver提供了execute_sript()方法来执行JavaScript代码。
一般必须使用滚动条的场景是:注册时的法律文件条文阅读。判断用户是否阅读完的标准是:滚动条是否拉倒页面底部。为了使操作更接近用户行为也会使用滚动条,例如用户操作的元素在页面的第二屏,一般用户不会对看不到的元素进行操作,那么需要现将滚动条拖动到页面的第二屏在进行操作。
window.scrollTo()方法用于设置浏览器窗口滚动条的水平和垂直位置。方法的第一个参数表示水平的左间距,第二个参数表示垂直的上边距。其代码如下:
from selenium import webdriver
from time import sleep
import time
# 访问百度
driver = webdriver.Firefox ()
driver.get("http://www.baidu.com")
# 控制浏览器大小
driver.set_window_size(600,600)
# 收索
driver.find_element_by_id("kw").send_keys("你好")
driver.find_element_by_id("su").click()
time.sleep(2) # 通过javascript设置浏览器窗口的滚动条 注:window.scrollTo(水平滚动条的距离,垂直滚动条的距离)
js = "window.scrollTo(450,0);"
driver.execute_script(js)
time.sleep(5) driver.quit ()
通过浏览器打开百度进行收索,并且提前通过set_window_size()方法选择浏览器窗口设置为固定宽高显示,目的是让窗口出现水平和垂直滚动条。并且JavaScript的作用不仅仅体现在浏览器滚动条的操作上,还可以用它向页面红的text文本框输入内容。
虽然可以通过id的方式将其进行定位,却不能通过send_keys()向文本框中输入文本信息。这种情况下,就需要借助JavaScript代码完成输入。
最新文章
- Codeforces Round #380(div 2)
- ubuntu在命令行新建用户后无法进入桌面的原因
- powerdesinger中建立一个表后,出现Existence of index的警告
- Deep Learning 16:用自编码器对数据进行降维_读论文“Reducing the Dimensionality of Data with Neural Networks”的笔记
- Glossary of Terms in the JavaTM platform --reference
- Linux下如何查看高CPU占用率线程 LINUX CPU利用率计算(转)
- IOS第三方数据库--FMDB
- easyUI 创建有复选框的table.datagrid
- Mysql基础教程-Mysql的字符集查看与修改
- 关于Object.keys()和for in的区别
- stm32 HAL库编程驱动控制文件<;stm32f1xx_hal_conf.h>;的使能方法
- LuoGu P2420 让我们异或吧
- Archlinux下vmware-workstation中安装rhel5并通过桥接模式(bridge)上网
- Android 5.0 Lollipop SDK下载地址(PASS)
- Chrome-Adobe Flash 无法正常使用
- 经典傅里叶算法小集合 附完整c代码
- git分支在团队中的使用
- fastjson的@JSONField注解的一点问题
- ballerina 学习十六 错误&;&;异常处理
- 给apk签名
热门文章
- SVN服务器搭建教程
- codec can&#39;t decode byte 0xe6 in position 0: ordinal not in range
- Adding In-App Purchase to your iOS and OS X Applications
- 3DMAX 多维材质及对应的UVW展开,UVW贴图
- Mysql相关函数使用和总结(liet、right、substring、substring_index)
- linux查找工具(find,locate,whrers)
- JQuery Easyui/TopJUI 基本树形表格的创建
- Javascript 给table动态增、删除行
- JS 时间格式为/Date(1332919782070)/ 转化为正常的格式
- TaskFactory单例模式利用xml