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中实现字符串类型与字典类型相互转换的方法
Aug 18 Python
Python实现多行注释的另类方法
Aug 22 Python
python实现在控制台输入密码不显示的方法
Jul 02 Python
Python中模块pymysql查询结果后如何获取字段列表
Jun 05 Python
windows下python之mysqldb模块安装方法
Sep 07 Python
对python中的高效迭代器函数详解
Oct 18 Python
利用Python如何实现一个小说网站雏形
Nov 23 Python
python判断一个数是否能被另一个整数整除的实例
Dec 12 Python
创建Django项目图文实例详解
Jun 06 Python
python实现上传文件到linux指定目录的方法
Jan 03 Python
Appium+Python实现简单的自动化登录测试的实现
Jan 26 Python
Python爬虫基础之简单说一下scrapy的框架结构
Jun 26 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源码之explode使用说明
2011/08/05 PHP
PHP使用星号隐藏用户名,手机和邮箱的实现方法
2016/09/22 PHP
Paypal实现循环扣款(订阅)功能
2017/03/23 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
Z-Blog中用到的js代码
2007/03/15 Javascript
Javascript解决常见浏览器兼容问题的12种方法
2010/01/04 Javascript
网站页面自动跳转实现方法PHP、JSP(下)
2010/08/01 Javascript
js继承的实现代码
2010/08/05 Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
2015/10/01 Javascript
Vue.js 父子组件通讯开发实例
2016/09/06 Javascript
pace.js和NProgress.js两个加载进度插件的一点小总结
2018/01/31 Javascript
利用hasOwnProperty给数组去重的面试题分享
2018/11/05 Javascript
JavaScript中的"=、==、==="区别讲解
2019/01/22 Javascript
微信小程序实现拨打电话功能的示例代码
2020/06/28 Javascript
解决ant Design中Select设置initialValue时的大坑
2020/10/29 Javascript
[07:40]DOTA2每周TOP10 精彩击杀集锦vol.4
2014/06/25 DOTA
Python中的闭包实例详解
2014/08/29 Python
python打开文件并获取文件相关属性的方法
2015/04/23 Python
利用Python-iGraph如何绘制贴吧/微博的好友关系图详解
2017/11/02 Python
用python处理图片之打开\显示\保存图像的方法
2018/05/04 Python
python+splinter实现12306网站刷票并自动购票流程
2018/09/25 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
2018/10/22 Python
pygame实现雷电游戏雏形开发
2018/11/20 Python
python+unittest+requests实现接口自动化的方法
2018/11/29 Python
python远程连接MySQL数据库
2019/04/19 Python
python+Django实现防止SQL注入的办法
2019/10/31 Python
Python3 元组tuple入门基础
2020/02/09 Python
基于Python正确读取资源文件
2020/09/14 Python
video下autoplay属性无效的解决方法(添加muted属性)
2020/05/19 HTML / CSS
美国知名的百货清仓店:Neiman Marcus Last Call
2016/08/03 全球购物
就业推荐自我鉴定
2013/10/06 职场文书
《独坐敬亭山》教学反思
2014/04/08 职场文书
高一学年自我鉴定范文(3篇)
2014/09/26 职场文书
逃课打麻将检讨书
2014/10/05 职场文书
同学毕业留言寄语
2015/02/27 职场文书
linux目录管理方法介绍
2022/06/01 Servers