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中函数的参数定义和可变参数用法实例分析
Jun 04 Python
Ubuntu下创建虚拟独立的Python环境全过程
Feb 10 Python
python实现的正则表达式功能入门教程【经典】
Jun 05 Python
基于Django模板中的数字自增(详解)
Sep 05 Python
Python中scatter函数参数及用法详解
Nov 08 Python
Python3中条件控制、循环与函数的简易教程
Nov 21 Python
Python实现的特征提取操作示例
Dec 03 Python
Django框架创建mysql连接与使用示例
Jul 29 Python
Python Web程序搭建简单的Web服务器
Jul 31 Python
使用pygame编写Flappy bird小游戏
Mar 14 Python
Django Admin后台添加数据库视图过程解析
Apr 01 Python
Python网络爬虫四大选择器用法原理总结
Jun 01 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脚本的10个技巧(5)
2006/10/09 PHP
PHP 数组排序方法总结 推荐收藏
2010/06/30 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
2014/06/19 PHP
PHP处理Oracle的CLOB实例
2014/11/03 PHP
php中file_exists函数使用详解
2015/05/08 PHP
javascript跨域刷新实现代码
2011/01/01 Javascript
验证控件与Button的OnClientClick事件详细解析
2013/12/04 Javascript
Js实现动态添加删除Table行示例
2014/04/14 Javascript
javascript操作excel生成报表全攻略
2014/05/04 Javascript
Javascript毫秒数用法实例
2015/02/05 Javascript
avalonjs制作响应式瀑布流特效
2015/05/06 Javascript
jquery马赛克拼接翻转效果代码分享
2015/08/24 Javascript
JS实现自动切换文字的导航效果代码
2015/08/27 Javascript
举例讲解jQuery中可见性过滤选择器的使用
2016/04/18 Javascript
jquery获取复选框的值的简单实例
2016/05/26 Javascript
AngularJS入门之动画
2016/07/27 Javascript
javascript中mouseenter与mouseover的异同
2017/06/06 Javascript
Vue 拦截器对token过期处理方法
2018/01/23 Javascript
React手稿之 React-Saga的详解
2018/11/12 Javascript
jquery无缝图片轮播组件封装
2020/11/25 jQuery
使用Easyui实现查询条件的后端传递并自动刷新表格的两种方法
2019/09/09 Javascript
Element Card 卡片的具体使用
2020/07/26 Javascript
常见的python正则用法实例讲解
2016/06/21 Python
pybind11在Windows下的使用教程
2019/07/04 Python
python中p-value的实现方式
2019/12/16 Python
python-docx文件定位读取过程(尝试替换)
2020/02/13 Python
受外贸欢迎的美国主机:BlueHost
2017/05/16 全球购物
英国第一的购买便宜玩具和游戏的在线购物网站:Bargain Max
2018/01/24 全球购物
英国珠宝和手表专家:Pleasance & Harper
2020/10/21 全球购物
行政管理人员精品工作推荐信
2013/11/04 职场文书
大学生学习2014全国两会心得体会
2014/03/13 职场文书
会议室标语
2014/06/21 职场文书
2015年学校教务处工作总结
2015/05/11 职场文书
入党介绍人意见2015
2015/06/01 职场文书
停车场管理制度范本
2015/08/05 职场文书
导游词之重庆渣滓洞
2020/01/08 职场文书