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正则表达式匹配中文用法示例
Jan 17 Python
Python爬虫实现百度图片自动下载
Feb 04 Python
Numpy截取指定范围内的数据方法
Nov 14 Python
python批量获取html内body内容的实例
Jan 02 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
Jul 19 Python
Python数据库小程序源代码
Sep 15 Python
python socket 聊天室实例代码详解
Nov 14 Python
django在保存图像的同时压缩图像示例代码详解
Feb 11 Python
Python class的继承方法代码实例
Feb 14 Python
django实现将后台model对象转换成json对象并传递给前端jquery
Mar 16 Python
CocosCreator ScrollView优化系列之分帧加载
Apr 14 Python
详解Golang如何实现支持随机删除元素的堆
Sep 23 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
论建造顺序的重要性
2020/03/04 星际争霸
初学者入门:细述PHP4的核心Zend
2006/09/05 PHP
PHP默认安装产生系统漏洞
2006/10/09 PHP
php学习笔记之面向对象编程
2012/12/29 PHP
php的socket编程详解
2016/11/20 PHP
javascript代码编写需要注意的7个小细节小结
2011/09/21 Javascript
详述JavaScript实现继承的几种方式(推荐)
2016/03/22 Javascript
深入浅析JavaScript中的scrollTop
2016/07/11 Javascript
javascript验证香港身份证的格式或真实性
2017/02/07 Javascript
Node.js Mongodb 密码特殊字符 @的解决方法
2017/04/11 Javascript
vue中的event bus非父子组件通信解析
2017/10/27 Javascript
JS中原始值和引用值的储存方式示例详解
2018/03/23 Javascript
JS同步、异步、延迟加载的方法
2018/05/05 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
vue form 表单提交后刷新页面的方法
2018/09/04 Javascript
QRCode.js二维码生成并能长按识别
2018/10/16 Javascript
微信小程序实现动态列表项的顺序加载动画
2019/07/25 Javascript
node.js中fs文件系统模块的使用方法实例详解
2020/02/13 Javascript
Python中遍历字典过程中更改元素导致异常的解决方法
2016/05/12 Python
python中的字典操作及字典函数
2018/01/03 Python
详解TensorFlow在windows上安装与简单示例
2018/03/05 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
2018/10/26 Python
Django框架首页和登录页分离操作示例
2019/05/28 Python
Python实现把多维数组展开成DataFrame
2019/11/30 Python
使用python实现希尔、计数、基数基础排序的代码
2019/12/25 Python
python爬取音频下载的示例代码
2020/10/19 Python
css3中用animation的steps属性制作帧动画
2019/04/25 HTML / CSS
收集的7个CSS3代码生成工具
2010/04/17 HTML / CSS
HTML5中的Article和Section元素认识及使用
2013/03/22 HTML / CSS
html5唤起app的方法
2017/11/30 HTML / CSS
AmazeUI 单选框和多选框的实现示例
2020/08/18 HTML / CSS
物理系毕业生自荐信
2013/11/01 职场文书
毕业生个人求职信范例分享
2013/12/17 职场文书
集体婚礼策划方案
2014/02/22 职场文书
八年级作文之友谊
2019/12/02 职场文书
Python PIL按比例裁剪图片
2022/05/11 Python