Python利用splinter实现浏览器自动化操作方法

yipeiwu_com5年前Python基础

利用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 单例设计模式用法实例分析

本文实例讲述了Python 单例设计模式用法。分享给大家供大家参考,具体如下: demo.py(单例): class MusicPlayer(object): # 类属性 记录对...

wx.CheckBox创建复选框控件并响应鼠标点击事件

wx.CheckBox创建复选框控件并响应鼠标点击事件

本文实例为大家分享了wx.CheckBox创建复选框控件并响应鼠标点击事件的具体代码,供大家参考,具体内容如下 执行效果图: 执行代码: #!/usr/bin/env pytho...

python实现人脸识别代码

python实现人脸识别代码

从实时视频流中识别出人脸区域,从原理上看,其依然属于机器学习的领域之一,本质上与谷歌利用深度学习识别出猫没有什么区别。程序通过大量的人脸图片数据进行训练,利用数学算法建立建立可靠的人脸特...

pandas apply 函数 实现多进程的示例讲解

pandas apply 函数 实现多进程的示例讲解

前言: 在进行数据处理的时候,我们经常会用到 pandas 。但是 pandas 本身好像并没有提供多进程的机制。本文将介绍如何来自己实现 pandas (apply 函数)的多进程执行...

基于python 微信小程序之获取已存在模板消息列表

前言: 为了获取一定高级操作,如:微信模板消息(xiao,xin)推送,把消息推送给用户,或者是获取用户授权信息都需要用到access token,有效期为两个小时? 过了两个小时怎么办...