利用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利用splinter实现浏览器自动化操作方法相关推荐

  1. python 模拟浏览器操作_python 使用 mechanize 模拟浏览器访问网页

    知道如何快速在命令行或者python脚本中实例化一个浏览器通常是非常有用的. 每次我需要做任何关于web的自动任务时,我都使用这段python代码去模拟一个浏览器. import mechanize ...

  2. python自动登录qq空间_python 利用splinter组件,自动登录QQ空间

    1.需要下载splinter 2.下载chromedriver放在/usr/bin目录下 #!/usr/bin/env python import sys import time from splin ...

  3. python字典通讯录_Python利用字典将两个通讯录文本合并为一个文本实例

    本文实例主要实现的是利用字典将两个通讯录文本合并为一个文本,具体代码如下: def main(): ftele1=open("d:\TeleAddressBook.txt",&qu ...

  4. python统计图教程_Python利用matplotlib绘制约数个数统计图示例

    本文实例讲述了Python利用matplotlib绘制约数个数统计图.分享给大家供大家参考,具体如下: 利用Python计算1000以内自然数的约数个数,然后通过matplotlib绘制统计图. 下图 ...

  5. python抠透明图_python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图

    因为最近在做深度学习抠图,正好要用到蒙版进行抠图,所以我将抠图代码进行了封装注释,可以直接使用.可能走了弯路,若有高见请一定提出! 主要代码 import cv2 from PIL import Im ...

  6. python 多线程同步_Python利用多线程同步锁实现多窗口订票系统(推荐)

    利用Python实现多窗口订票系统,利用 threading.Lock() 避免出现一票多卖,无票也卖的情况,并规范化输出情况. 代码: import threading import time ti ...

  7. python 渐变色柱形图_Python利用imshow制作自定义渐变填充柱状图(colorbar)

    目的 在各种各样的理论计算中,常常需要绘制各种填充图,绘制完后需要加渐变填充的colorbar.可是有些软件如VMD,colorbar渲染后颜色分布有些失真,不能较准确的表达各颜色对应的数值.用ps中 ...

  8. python keyboard库_python利用 keyboard 库记录键盘事件

    今天也不知道是想了什么,突然就想要试试看我有效击键时的手速到底有多快.为此,需要记录下来击键的记录.于是找到了 Python 的 keyboard 库. 安装非常简单,只需执行 pip install ...

  9. python多元非线性回归_Python利用神经网络解决非线性回归问题实例详解

    本文实例讲述了Python利用神经网络解决非线性回归问题.分享给大家供大家参考,具体如下: 问题描述 现在我们通常使用神经网络进行分类,但是有时我们也会进行回归分析. 如本文的问题: 我们知道一个生物 ...

最新文章

  1. ACMNO.34 C语言-格式输出 请设计输出实数的格式,包括:⑴一行输出一个实数;⑵一行内输出两个实数;⑶一行内输出三个实数。实数用6.2f格式输出。
  2. 58 Node.js中操作mongoDB数据库
  3. Android 打印log 在logcat 看不到
  4. HDU-5706(DFS)
  5. 顺丰同城通过港交所聆讯 今年前五个月收入为30.46亿元
  6. python创建虚拟环境打包_用虚拟环境保存库文件--Python打包-阿里云开发者社区
  7. Activity内部Handler引起内存泄露的原因分析
  8. Ubuntu系统搭建以太坊开发平台过程
  9. 宜信正式开源其 AIOps 落地三大利器
  10. win7、win10磁盘分区
  11. Visual SourceSafe Explorer界面出现乱码+字体翻转
  12. 拓展KubeVela模块,看addon如何助力开放生态
  13. .Net/C#: 一个将在线简体中文网页转为繁体中文页简单方法
  14. C语言编程学习打造——做题游戏
  15. 交换机千兆和百兆对网速影响_交换机对网速的影响
  16. python撤销_Python 实现还原已撤回的微信消息
  17. Opencv实现Sift、Surf、ORB特征提取与匹配
  18. springboot启动源码分析3-环境配置
  19. excel使用教程_改变Excel图表展现形态的8种不同坐标轴设置方法
  20. openstack create flavor.sh

热门文章

  1. 来讨论一下这些常见的 Redis 面试题
  2. python集合运算_从零开始学Python - 第014课:常用数据结构之集合
  3. deepin配置JDK
  4. Docker上安装运行Hbase
  5. java基础面试题之:i++与++i的区别
  6. 算法练习题---回文数
  7. Musical Theme POJ - 1743(后缀数组+二分)
  8. 让页面高度自动到底部 始终底部
  9. ArcEngine中实现对符号的预览图输出
  10. Sqlserver常用函数例子说明