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 相关文章推荐
python协程用法实例分析
Jun 04 Python
浅谈Python用QQ邮箱发送邮件时授权码的问题
Jan 29 Python
Flask框架Flask-Principal基本用法实例分析
Jul 23 Python
Python中安装easy_install的方法
Nov 18 Python
python print输出延时,让其立刻输出的方法
Jan 07 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
Jun 08 Python
Python 日志logging模块用法简单示例
Oct 18 Python
pandas实现将日期转换成timestamp
Dec 07 Python
python基于三阶贝塞尔曲线的数据平滑算法
Dec 27 Python
详解python tkinter模块安装过程
Jan 06 Python
Python求两个字符串最长公共子序列代码实例
Mar 05 Python
PyMongo 查询数据的实现
Jun 28 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 chr() ord()中文截取乱码问题解决方法
2008/09/08 PHP
处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
2013/07/03 PHP
php实现在线通讯录功能(附源码)
2016/05/13 PHP
PHP构造二叉树算法示例
2017/06/21 PHP
一个用js实现的页内搜索代码
2007/05/23 Javascript
js汉字排序问题 支持中英文混排,兼容各浏览器,包括CHROME
2011/12/20 Javascript
Extjs表单常见验证小结
2014/03/07 Javascript
Javascript判断图片尺寸大小实例分析
2014/06/16 Javascript
JS操作JSON方法总结(推荐)
2016/06/14 Javascript
微信小程序加载更多 点击查看更多
2016/11/29 Javascript
浅谈javascript中执行环境(作用域)与作用域链
2016/12/08 Javascript
JavaScript中动态向表格添加数据
2017/01/24 Javascript
vue模板语法-插值详解
2017/03/06 Javascript
基于angular-utils-ui-breadcrumbs使用心得(分享)
2017/11/03 Javascript
vue-cli常用设置总结
2018/02/24 Javascript
vue内置组件transition简单原理图文详解(小结)
2018/07/12 Javascript
vue实现动态列表点击各行换色的方法
2018/09/13 Javascript
详谈js的变量提升以及使用方法
2018/10/06 Javascript
angularJS自定义directive之带参方法传递详解
2018/10/09 Javascript
vue-router命名路由和编程式路由传参讲解
2019/01/19 Javascript
详解在React-Native中持久化redux数据
2019/05/22 Javascript
jquery弹窗时禁止body滚动条滚动的例子
2019/09/21 jQuery
python使用super()出现错误解决办法
2017/08/14 Python
Python爬虫实现全国失信被执行人名单查询功能示例
2018/05/03 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
2018/06/19 Python
为什么Python中没有"a++"这种写法
2018/11/27 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
详解Django中views数据查询使用locals()函数进行优化
2020/08/24 Python
Python SQLAlchemy库的使用方法
2020/10/13 Python
Wiggle中国:英国骑行、跑步、游泳 & 铁三运动装备专卖网店
2016/08/02 全球购物
美国最大的户外装备和服装购物网站:Backcountry
2019/10/15 全球购物
有针对性的求职自荐信
2013/11/14 职场文书
会计岗位描述
2014/02/22 职场文书
超市店长竞聘书
2015/09/15 职场文书
如何拟写通知正文?
2019/04/02 职场文书
pytest实现多进程与多线程运行超好用的插件
2022/07/15 Python