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中的面向对象编程详解(上)
Apr 13 Python
python操作sqlite的CRUD实例分析
May 08 Python
详解Python Socket网络编程
Jan 05 Python
python中virtualenvwrapper安装与使用
May 20 Python
pandas 小数位数 精度的处理方法
Jun 09 Python
Python实现的简单排列组合算法示例
Jul 04 Python
pytorch 数据集图片显示方法
Jul 26 Python
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
Nov 06 Python
python实现自动解数独小程序
Jan 21 Python
python itsdangerous模块的具体使用方法
Feb 17 Python
python 轮询执行某函数的2种方式
May 03 Python
使用python matploblib库绘制准确率,损失率折线图
Jun 16 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获取淘宝分类id示例
2014/01/16 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
2016/12/24 PHP
PHP实现从上往下打印二叉树的方法
2018/01/18 PHP
JavaScript 应用类库代码
2008/06/02 Javascript
javaScript 简单验证代码(用户名,密码,邮箱)
2009/09/28 Javascript
JS小框架 fly javascript framework
2009/11/26 Javascript
javascript面向对象之二 命名空间
2011/02/08 Javascript
jQuery之字体大小的设置方法
2014/02/27 Javascript
理解javascript中的回调函数(callback)
2014/09/02 Javascript
让人蛋疼的JavaScript语法特性
2014/09/30 Javascript
jquery常用函数与方法汇总
2015/09/01 Javascript
如何利用AngularJS打造一款简单Web应用
2015/12/05 Javascript
jQuery实现图像旋转动画效果
2016/05/29 Javascript
AngularJS入门教程之与服务器(Ajax)交互操作示例【附完整demo源码下载】
2016/11/02 Javascript
jquery图片放大镜效果
2017/06/23 jQuery
详解Webpack DLL用法以及功能
2017/07/11 Javascript
js Dom实现换肤效果
2017/10/21 Javascript
vue 实现在函数中触发路由跳转的示例
2018/09/01 Javascript
小程序实现单选多选功能
2018/11/04 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
2021/01/07 Vue.js
python用ConfigObj读写配置文件的实现代码
2013/03/04 Python
python pandas dataframe 行列选择,切片操作方法
2018/04/10 Python
对numpy.append()里的axis的用法详解
2018/06/28 Python
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
2018/07/04 Python
python 以16进制打印输出的方法
2018/07/09 Python
使用Python进行中文繁简转换的实现代码
2019/10/18 Python
PyQt5事件处理之定时在控件上显示信息的代码
2020/03/25 Python
Python 判断时间是否在时间区间内的实例
2020/05/16 Python
TensorFlow固化模型的实现操作
2020/05/26 Python
Python全局变量与global关键字常见错误解决方案
2020/10/05 Python
万能检讨书2000字
2014/10/17 职场文书
个人作风建设自查报告
2014/10/22 职场文书
2015年公共机构节能宣传周活动总结
2015/03/26 职场文书
红色故事汇观后感
2015/06/18 职场文书
MySQL下使用Inplace和Online方式创建索引的教程
2021/05/26 MySQL
php png失真的原因及解决办法
2021/10/24 PHP