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中的__init__ 、__new__、__call__小结
Apr 25 Python
详解Python中的变量及其命名和打印
Mar 11 Python
Python按行读取文件的实现方法【小文件和大文件读取】
Sep 19 Python
Python编程二分法实现冒泡算法+快速排序代码示例
Jan 15 Python
python实现微信发送邮件关闭电脑功能
Feb 22 Python
python基础教程项目五之虚拟茶话会
Apr 02 Python
详解pytorch 0.4.0迁移指南
Jun 16 Python
Python 的AES加密与解密实现
Jul 09 Python
django表单中的按钮获取数据的实例分析
Jul 31 Python
python 读取、写入txt文件的示例
Sep 27 Python
总结python 三种常见的内存泄漏场景
Nov 20 Python
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
Nov 11 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中instanceof关键字及instanceof关键字有什么作用
2015/11/05 PHP
PHP实现简单注册登录系统
2020/12/28 PHP
Javascript排序算法之计数排序的实例
2014/04/05 Javascript
Javascript实现简单二级下拉菜单实例
2014/06/15 Javascript
使用focus方法让光标默认停留在INPUT框
2014/07/29 Javascript
JavaScript 作用域链解析
2014/11/13 Javascript
Js使用WScript.Shell对象执行.bat文件和cmd命令
2014/12/18 Javascript
JavaScript截取、切割字符串的技巧
2016/01/07 Javascript
JQuery的Pager分页器实现代码
2016/05/03 Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
2017/01/20 Javascript
使用vue2实现购物车和地址选配功能
2018/03/29 Javascript
vue中的模态对话框组件实现过程
2018/05/01 Javascript
ES10 特性的完整指南小结
2019/03/04 Javascript
webpack+vue.js构建前端工程化的详细教程
2020/05/10 Javascript
学前端,css与javascript重难点浅析
2020/06/11 Javascript
wepy--用vantUI 实现上弹列表并选择相应的值操作
2020/11/03 Javascript
[49:21]2018DOTA2亚洲邀请赛3月30日 小组赛B组 Effect VS iG
2018/03/31 DOTA
Python进度条实时显示处理进度的示例代码
2018/01/30 Python
查看django版本的方法分享
2018/05/14 Python
python得到windows自启动列表的方法
2018/10/14 Python
python 文本单词提取和词频统计的实例
2018/12/22 Python
Python 简单计算要求形状面积的实例
2020/01/18 Python
Python实现列表中非负数保留,负数转化为指定的数值方式
2020/06/04 Python
Python Pillow(PIL)库的用法详解
2020/09/19 Python
Python测试框架:pytest学习笔记
2020/10/20 Python
阿联酋团购网站:Groupon阿联酋
2016/10/14 全球购物
以色列的身体护理及家居香薰品牌:Sabon NYC
2018/02/23 全球购物
美术师范毕业生自荐信
2013/11/16 职场文书
质量承诺书范文
2014/03/27 职场文书
大学新闻系应届生求职信
2014/06/02 职场文书
数学教育专业求职信
2014/07/22 职场文书
门卫岗位职责说明书
2014/08/18 职场文书
保证金退回承诺函格式
2015/01/21 职场文书
幼儿园教师师德师风承诺书
2015/04/28 职场文书
住房公积金贷款工资证明
2015/06/12 职场文书
2015年公司国庆放假通知
2015/07/30 职场文书