Python利用splinter实现浏览器自动化操作方法


Posted in Python onMay 11, 2018

利用Splinter开发浏览器自动化操作,编写代码比较简单。

案例一:

from splinter import Browser 
 
with Browser() as browser: 
 # Visit URL 
 url = "http://www.google.com" 
 browser.visit(url) 
 browser.fill('q', 'splinter - python acceptance testing for web applications') 
 # Find and click the 'search' button 
 button = browser.find_by_name('btnG') 
 # Interact with elements 
 button.click() 
 if browser.is_text_present('splinter.readthedocs.io'): 
  print("Yes, the official website was found!") 
 else: 
  print("No, it wasn't found... We need to improve our SEO techniques")

第1行 是导入Browser。

Browser是整个测试的基础,你可以把它理解为一个浏览器。

第3行 初始化一个Browser,不加参数的话默认是firefox。

第4行 是命令browser打开"http://google.com"。

第5行 是命令browser使用‘splinter - python acceptance testing for web applications'填充页面中‘name'是‘q'的元素。在Google的首页中,就是那个搜索框。大家可以看一下Google首页的代码。

第6行 是两个命令。第一个是找到‘name'属性为‘btnG'的按钮,第二个是click()也就是点击这个按钮。这个按钮就是Google的搜索按钮。

第8行 是判断页面中是否有‘splinter.cobrateam.info'这个字符串,因为上一步点击了搜索按钮,所以这里搜索的就是跳转之后的页面。当然,大家不用担心网速慢会判断出错,splinter会等页面载入完成再进行下一步的操作。

第13行 是删除browser。

案例二:

这里,我给出自动登录126邮箱的案例。难点是要找到页面的账户、密码、登录的页面元素,这里需要查看126邮箱登录页面的源码,才能找到相关控件的id.

例如:输入密码,密码的文本控件id是pwdInput.可以使用browser.find_by_id()方法定位到密码的文本框,

接着使用fill()方法,填写密码。至于模拟点击按钮,也是要先找到按钮控件的id,然后使用click()方法。

由于代码较简单,我就只在代码中给出注解说明工作原理。

#coding=utf-8 
import time 
from splinter import Browser 
 
def splinter(url): 
 browser = Browser('chrome') 
 #login 126 email websize 
 browser.visit(url) 
 #wait web element loading 
 time.sleep(5) 
 #fill in account and password 
 browser.find_by_id('idInput').fill('xxxxxx') 
 browser.find_by_id('pwdInput').fill('xxxxx') 
 #click the button of login 
 browser.find_by_id('loginBtn').click() 
 time.sleep(8) 
 #close the window of brower 
 browser.quit() 
 
if __name__ == '__main__': 
 websize3 ='http://www.126.com' 
 splinter(websize3)

以上这篇Python利用splinter实现浏览器自动化操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
采用Psyco实现python执行速度提高到与编译语言一样的水平
Oct 11 Python
python实现查找excel里某一列重复数据并且剔除后打印的方法
May 26 Python
python简单实现计算过期时间的方法
Jun 09 Python
Python使用gensim计算文档相似性
Apr 10 Python
使用pyecharts无法import Bar的解决方案
Apr 23 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
May 29 Python
python实现简单银行管理系统
Oct 25 Python
TENSORFLOW变量作用域(VARIABLE SCOPE)
Jan 10 Python
python字典和json.dumps()的遇到的坑分析
Mar 11 Python
JAVA SWT事件四种写法实例解析
Jun 05 Python
python各种excel写入方式的速度对比
Nov 10 Python
python切片作为占位符使用实例讲解
Feb 17 Python
Python爬虫信息输入及页面的切换方法
May 11 #Python
对python-3-print重定向输出的几种方法总结
May 11 #Python
利用Python如何实现数据驱动的接口自动化测试
May 11 #Python
Python数据结构之图的应用示例
May 11 #Python
python 重定向获取真实url的方法
May 11 #Python
基于python 爬虫爬到含空格的url的处理方法
May 11 #Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
May 11 #Python
You might like
详谈PHP编码转换问题
2015/07/28 PHP
PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)
2016/09/22 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
2019/04/03 PHP
让GoogleCode的SVN下的HTML文件在FireFox下正常显示.
2009/05/25 Javascript
JavaScript学习笔记(十)
2010/01/17 Javascript
12个非常有创意的JavaScript小游戏
2010/03/18 Javascript
js 绑定带参数的事件以及手动触发事件
2010/04/27 Javascript
DB.ASP 用Javascript写ASP很灵活很好用很easy
2011/07/31 Javascript
JavaScript:Div层拖动效果实例代码
2013/08/06 Javascript
jQuery对象的length属性用法实例
2014/12/27 Javascript
JS实现单行文字不间断向上滚动的方法
2015/01/29 Javascript
jQuery实现垂直半透明手风琴特效代码分享
2015/08/21 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
JavaScript jquery及AJAX小结
2016/01/24 Javascript
详解node child_process模块学习笔记
2018/01/24 Javascript
JSON基本语法及与JavaScript的异同实例分析
2019/01/04 Javascript
node(koa2) web应用模块介绍详解
2019/03/29 Javascript
在Layui中实现开关按钮的效果实例
2019/09/29 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
Angular之jwt令牌身份验证的实现
2020/02/14 Javascript
vue setInterval 定时器失效的解决方式
2020/07/30 Javascript
vue路由分文件拆分管理详解
2020/08/13 Javascript
jQuery实现简单QQ聊天框
2020/08/27 jQuery
Python的Flask框架标配模板引擎Jinja2的使用教程
2016/07/12 Python
python 统计列表中不同元素的数量方法
2018/06/29 Python
pyshp创建shp点文件的方法
2018/12/31 Python
使用Python 自动生成 Word 文档的教程
2020/02/13 Python
Pycharm打开已有项目配置python环境的方法
2020/07/03 Python
Python爬虫爬取ts碎片视频+验证码登录功能
2021/02/22 Python
巴西电子产品购物网站:Saldão da Informática
2018/01/09 全球购物
Piercing Pagoda官网:耳环、戒指、项链、手链等
2020/09/28 全球购物
学年自我鉴定
2014/01/16 职场文书
敬老院活动总结
2014/04/28 职场文书
2014年社区居委会主任重阳节讲话稿
2014/09/25 职场文书
乡镇领导班子四风对照检查材料
2014/09/27 职场文书
SQL Server Agent 服务无法启动
2022/04/20 SQL Server