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 10 Python
python删除列表中重复记录的方法
Apr 28 Python
Python合并两个字典的常用方法与效率比较
Jun 17 Python
python实现ping的方法
Jul 06 Python
Python实现合并同一个文件夹下所有PDF文件的方法示例
Apr 28 Python
python简单实现矩阵的乘,加,转置和逆运算示例
Jul 10 Python
pytorch中如何使用DataLoader对数据集进行批处理的方法
Aug 06 Python
Python可变对象与不可变对象原理解析
Feb 25 Python
Python unittest 自动识别并执行测试用例方式
Mar 09 Python
python 实现两个变量值进行交换的n种操作
Jun 02 Python
python接口测试返回数据为字典取值方式
Feb 12 Python
详解OpenCV获取高动态范围(HDR)成像
Apr 29 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 从数据库提取二进制图片的处理代码
2009/09/09 PHP
PHP 加密解密内部算法
2010/04/22 PHP
PHP strncasecmp字符串比较的小技巧
2011/01/04 PHP
php短址转换实现方法
2015/02/25 PHP
JQuery 获取和设置Select选项的代码
2010/02/07 Javascript
最常用的12种设计模式小结
2011/08/09 Javascript
JQuery判断子iframe何时加载完成解决方案
2013/08/20 Javascript
Bootstrap基础学习
2015/06/16 Javascript
smartcrop.js智能图片裁剪库
2015/10/14 Javascript
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
javascript 解决浏览器不支持的问题
2016/09/24 Javascript
JS实现仿PS的调色板效果完整实例
2016/12/21 Javascript
vue+vuex+axios实现登录、注册页权限拦截
2018/03/09 Javascript
Vue搭建后台系统需要注意的问题
2019/11/08 Javascript
全面解析JavaScript Module模式
2020/07/24 Javascript
[48:11]完美世界DOTA2联赛 Magma vs GXR 第二场 11.07
2020/11/10 DOTA
Python实现发送email的几种常用方法
2014/08/18 Python
使用Python的Django框架实现事务交易管理的教程
2015/04/20 Python
python中装饰器级连的使用方法示例
2017/09/29 Python
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
Django csrf 验证问题的实现
2018/10/09 Python
对python numpy.array插入一行或一列的方法详解
2019/01/29 Python
python 画出使用分类器得到的决策边界
2019/08/21 Python
Python字符串中添加、插入特定字符的方法
2019/09/10 Python
python读文件的步骤
2019/10/08 Python
django-orm F对象的使用 按照两个字段的和,乘积排序实例
2020/05/18 Python
Python3如何使用range函数替代xrange函数
2020/10/05 Python
快速解决pymongo操作mongodb的时区问题
2020/12/05 Python
html5 分层屏幕适配的方法
2018/03/16 HTML / CSS
世界上最好的儿童品牌:AlexandAlexa
2018/01/27 全球购物
Foreo国际站:Foreo International
2018/10/29 全球购物
澳大利亚领先的在线药房:Pharmacy Online(有中文站)
2020/02/22 全球购物
省优秀教师事迹材料
2014/01/30 职场文书
党员对照检查材料思想汇报(党的群众路线)
2014/09/24 职场文书
作风建设年度心得体会
2014/10/29 职场文书
劳动保障个人工作总结
2015/03/04 职场文书