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学习之asyncore模块用法实例教程
Sep 29 Python
Python常用的日期时间处理方法示例
Feb 08 Python
利用Python爬虫给孩子起个好名字
Feb 14 Python
Python 处理数据的实例详解
Aug 10 Python
使用python对excle和json互相转换的示例
Oct 23 Python
详解opencv Python特征检测及K-最近邻匹配
Jan 21 Python
python实现月食效果实例代码
Jun 18 Python
利用Python实现kNN算法的代码
Aug 16 Python
Python API 操作Hadoop hdfs详解
Jun 06 Python
python rolling regression. 使用 Python 实现滚动回归操作
Jun 08 Python
Keras实现DenseNet结构操作
Jul 06 Python
python实现数字炸弹游戏程序
Jul 17 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 curl_setopt()函数实例代码与参数分析
2011/06/02 PHP
探讨多键值cookie(php中cookie存取数组)的详解
2013/06/06 PHP
destoon安全设置中需要设置可写权限的目录及文件
2014/06/21 PHP
Javascript 错误处理的几种方法
2009/06/13 Javascript
Ext.MessageBox工具类简介
2009/12/10 Javascript
jquery获取input表单值的代码
2010/04/19 Javascript
理解Javascript_13_执行模型详解
2010/10/20 Javascript
如何使用JS获取IE上传文件路径(IE7,8)
2013/07/08 Javascript
jquery数组封装使用方法分享(jquery数组遍历)
2014/03/25 Javascript
jQuery数组处理函数整理
2016/08/03 Javascript
Angular2下使用pdf插件的方法详解
2017/04/29 Javascript
Angular中响应式表单的三种更新值方法详析
2017/08/22 Javascript
Node之简单的前后端交互(实例讲解)
2017/11/14 Javascript
Nodejs把接收图片base64格式保存为文件存储到服务器上
2018/09/26 NodeJs
微信小程序生成海报分享朋友圈的实现方法
2019/05/06 Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
2020/11/07 Javascript
Python Web开发模板引擎优缺点总结
2014/05/06 Python
Python输出9*9乘法表的方法
2015/05/25 Python
Python之两种模式的生产者消费者模型详解
2018/10/26 Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
2019/03/26 Python
python networkx 根据图的权重画图实现
2019/07/10 Python
对python3中的RE(正则表达式)-详细总结
2019/07/23 Python
深入了解Python在HDA中的应用
2019/09/05 Python
Python读取分割压缩TXT文本文件实例
2020/02/14 Python
Python基于network模块制作电影人物关系图
2020/06/19 Python
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
移动端开发HTML5页面点击按钮后出现闪烁或黑色背景的解决办法
2018/09/19 HTML / CSS
Stuart Weitzman欧盟:美国奢华鞋履品牌
2017/05/24 全球购物
Athleta官网:购买女士瑜伽服、技术运动服和休闲运动服
2020/11/12 全球购物
中间件分为哪几类
2012/03/14 面试题
电台实习生求职信
2014/02/25 职场文书
人事部专员岗位职责
2014/03/04 职场文书
班主任个人工作反思
2014/04/28 职场文书
导游词之宿迁乾隆行宫
2019/10/15 职场文书
面试被问select......for update会锁表还是锁行
2021/11/11 MySQL
JavaScript实现简单的音乐播放器
2022/08/14 Javascript