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自动调用IE打开某个网站的方法
Jun 03 Python
Eclipse中Python开发环境搭建简单教程
Mar 23 Python
详解Python中使用base64模块来处理base64编码的方法
Jul 01 Python
Python语言生成水仙花数代码示例
Dec 18 Python
Python 查看文件的读写权限方法
Jan 23 Python
python简单实现操作Mysql数据库
Jan 29 Python
python使用tkinter实现简单计算器
Jan 30 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
Apr 19 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
Oct 29 Python
python读取yaml文件后修改写入本地实例
Apr 27 Python
浅谈Python 函数式编程
Jun 20 Python
python 常用的异步框架汇总整理
Jun 18 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
评分9.0以上的动画电影,剧情除了经典还很燃
2020/03/04 日漫
谈一谈收音机的高放电路
2021/03/02 无线电
在Zeus Web Server中安装PHP语言支持
2006/10/09 PHP
weiphp微信公众平台授权设置
2016/01/04 PHP
laravel框架之数据库查出来的对象实现转化为数组
2019/10/23 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
JQuery SELECT单选模拟jQuery.select.js
2009/11/12 Javascript
Jquery中对数组的操作代码
2011/08/12 Javascript
Nodejs Post请求报socket hang up错误的解决办法
2014/09/25 NodeJs
JavaScript中的Math.SQRT1_2属性使用简介
2015/06/14 Javascript
js实现a标签超链接提交form表单的方法
2015/06/24 Javascript
jQuery Real Person验证码插件防止表单自动提交
2015/11/06 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
JavaScript 身份证号有效验证详解及实例代码
2016/10/20 Javascript
jQuery读取XML文件的方法示例
2017/02/03 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
2017/02/15 Javascript
jquery仿京东商品放大浏览页面
2017/06/06 jQuery
30分钟精通React今年最劲爆的新特性——React Hooks
2019/03/11 Javascript
element中的$confirm的使用
2020/04/26 Javascript
浅谈实现在线预览PDF的几种解决办法
2020/08/10 Javascript
netbeans7安装python插件的方法图解
2013/12/24 Python
Python实现字典去除重复的方法示例
2017/07/31 Python
Python算法之图的遍历
2017/11/16 Python
python 通过xml获取测试节点和属性的实例
2018/03/31 Python
python3.x 将byte转成字符串的方法
2018/07/17 Python
Python 利用scrapy爬虫通过短短50行代码下载整站短视频
2018/10/29 Python
HTML5添加鼠标悬浮音响效果不使用FLASH
2014/04/23 HTML / CSS
HTML5拖放API实现自动生成相框功能
2020/04/07 HTML / CSS
世嘉游戏英国官方商店:SEGA Shop UK
2019/09/20 全球购物
生日主持词
2014/03/20 职场文书
宾馆仓管员岗位职责
2014/07/27 职场文书
房屋产权证明书
2014/10/15 职场文书
大学生英文求职信范文
2015/03/19 职场文书
《用字母表示数》教学反思
2016/02/17 职场文书
解析目标检测之IoU
2021/06/26 Python
Java移除无效括号的方法实现
2021/08/07 Java/Android