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中对象的引用与复制代码示例
Dec 04 Python
基于python批量处理dat文件及科学计算方法详解
May 08 Python
解决python nohup linux 后台运行输出的问题
May 11 Python
Python中的Numpy矩阵操作
Aug 12 Python
Python matplotlib的使用并自定义colormap的方法
Dec 13 Python
PyQt5实现简易电子词典
Jun 25 Python
django中账号密码验证登陆功能的实现方法
Jul 15 Python
python3.7 sys模块的具体使用
Jul 22 Python
python处理自动化任务之同时批量修改word里面的内容的方法
Aug 23 Python
python matplotlib 画dataframe的时间序列图实例
Nov 20 Python
python自动分箱,计算woe,iv的实例代码
Nov 22 Python
Python requests.post方法中data与json参数区别详解
Apr 30 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中set error handler函数用法小结
2015/11/11 PHP
WordPress中用于创建以及获取侧边栏的PHP函数讲解
2015/12/29 PHP
php插入含有特殊符号数据的处理方法
2016/11/24 PHP
Jquery实现带动画效果的经典二级导航菜单
2013/03/22 Javascript
转义字符(\)对JavaScript中JSON.parse的影响概述
2013/07/17 Javascript
JS 实现点击a标签的时候让其背景更换
2013/10/15 Javascript
使用js简单实现了tree树菜单
2013/11/20 Javascript
checkbox勾选判断代码分析
2014/06/11 Javascript
微信小程序 navigation API实例详解
2016/10/02 Javascript
JS验证图片格式和大小并预览的简单实例
2016/10/11 Javascript
浅谈js中同名函数和同名变量的执行问题
2017/02/12 Javascript
vue-axios使用详解
2017/05/10 Javascript
js获取css的各种样式并且设置他们的方法
2017/08/22 Javascript
利用vue.js把静态json绑定bootstrap的table方法
2018/08/28 Javascript
使用RN Animated做一个“添加购物车”动画的方法
2018/09/12 Javascript
详解Vue基于vue-quill-editor富文本编辑器使用心得
2019/01/03 Javascript
Vue项目中使用WebUploader实现文件上传的方法
2019/07/21 Javascript
js加减乘除精确运算方法实例代码
2021/01/17 Javascript
Handtrack.js库实现实时监测手部运动(推荐)
2021/02/08 Javascript
[00:17]天涯墨客一技能展示
2018/08/25 DOTA
python解析xml文件实例分享
2013/12/04 Python
python实现的一个火车票转让信息采集器
2014/07/09 Python
python中正则的使用指南
2016/12/04 Python
centos 安装python3.6环境并配置虚拟环境的详细教程
2018/02/22 Python
pycharm安装及如何导入numpy
2020/04/03 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
2020/10/20 Python
浅析Python模块之间的相互引用问题
2021/02/26 Python
奥地利汽车配件店:Pkwteile.at
2017/03/10 全球购物
临床医学大学生求职信
2013/09/28 职场文书
社区七一党员活动方案
2014/01/25 职场文书
水利学院求职自荐书
2014/02/01 职场文书
酒店管理失职检讨书
2014/09/16 职场文书
钱学森电影观后感
2015/06/04 职场文书
2015毕业设计工作总结
2015/07/24 职场文书
Golang 正则匹配效率详解
2021/04/25 Golang
MySQL查看表和清空表的常用命令总结
2021/05/26 MySQL