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 15 Python
利用python实现简单的循环购物车功能示例代码
Jul 05 Python
Python单体模式的几种常见实现方法详解
Jul 28 Python
Python网络编程详解
Oct 31 Python
Python3中的列表生成式、生成器与迭代器实例详解
Jun 11 Python
Django Admin实现三级联动的示例代码(省市区)
Jun 22 Python
在IPython中进行Python程序执行时间的测量方法
Nov 01 Python
python使用adbapi实现MySQL数据库的异步存储
Mar 19 Python
pytorch多进程加速及代码优化方法
Aug 19 Python
Python 根据数据模板创建shapefile的实现
Nov 26 Python
Python实现封装打包自己写的代码,被python import
Jul 12 Python
python 远程执行命令的详细代码
Feb 15 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
Laravel框架学习笔记(二)项目实战之模型(Models)
2014/10/15 PHP
jquery autocomplete自动完成插件的的使用方法
2010/08/07 Javascript
js/jquery解析json和数组格式的方法详解
2014/01/09 Javascript
javascript操作excel生成报表全攻略
2014/05/04 Javascript
jQuery新的事件绑定机制on()示例应用
2014/07/18 Javascript
jquery获取select选中值的方法分析
2015/12/22 Javascript
总结JavaScript三种数据存储方式之间的区别
2016/05/03 Javascript
js实现文字向上轮播功能
2017/01/13 Javascript
利用JS制作万年历的方法
2017/08/16 Javascript
详解vue-cli中使用rem,vue自适应
2019/05/06 Javascript
ES6 Set结构的应用实例分析
2019/06/26 Javascript
ES2020 已定稿,真实场景案例分析
2020/05/25 Javascript
[05:00]第二届DOTA2亚洲邀请赛主赛事第三天比赛集锦.mp4
2017/04/04 DOTA
python dict remove数组删除(del,pop)
2013/03/24 Python
Python实现的生成自我描述脚本分享(很有意思的程序)
2014/07/18 Python
Python的__builtin__模块中的一些要点知识
2015/05/02 Python
django之常用命令详解
2016/06/30 Python
Python中shutil模块的常用文件操作函数用法示例
2016/07/05 Python
Python修改文件往指定行插入内容的实例
2019/01/30 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
2019/07/19 Python
django在开发中取消外键约束的实现
2020/05/20 Python
python中round函数保留两位小数的方法
2020/12/04 Python
HTML5 本地存储和内容按需加载的思路和方法
2011/04/07 HTML / CSS
美国零售商店:Blue&Cream
2017/04/07 全球购物
西班牙拥有最佳品牌的动物商店:Animalear.com
2018/01/05 全球购物
既然说Ruby中一切都是对象,那么Ruby中类也是对象吗
2013/01/26 面试题
毕业生求职的求职信
2013/12/05 职场文书
你懂得怎么写自荐信吗?
2013/12/27 职场文书
大学生职业规划前言模板
2013/12/27 职场文书
《鹬蚌相争》教学反思
2014/04/22 职场文书
工程索赔意向书
2014/08/30 职场文书
新教师教学工作总结
2015/08/12 职场文书
Oracle创建只读账号的详细步骤
2021/06/07 Oracle
Golang表示枚举类型的详细讲解
2021/09/04 Golang
python 闭包函数详细介绍
2022/04/19 Python
ubuntu端向日葵键盘输入卡顿问题及解决
2022/12/24 Servers