Splinter 是一个用于测试 web 应用程序的工具,它具有查找元素、表单操作和其他浏览器操作的简单功能。
安装
1 | $ pip install splinter |
运行还需要安装 WebDriver,ChromeDriver 安装可以看这里,其他浏览器见这里
快速入门
我在官方的例子上做了下修改,现在运行下,然后我们再来分析它做了什么1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: wxnacy([email protected])
from splinter import Browser
browser = Browser(driver_name='chrome')
browser.driver.set_window_size(1920, 1080)
browser.visit('http://google.com')
browser.fill('q', 'splinter - python acceptance testing for web applications')
browser.find_by_name('btnK').click()
html = browser.html
print(html)
image = browser.screenshot(name='/Users/wxnacy/PycharmProjects/study/python/splinter_demo/screenshot', suffix='.jpg')
print(image)
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")
browser.quit()
下面我们来分析下,这个例子都做了什么
创建实例,并指定浏览器为
chrome
,如果不指定默认为foxfire
,如果你本地的 driver 没有在环境变量中,还需要executable_path
参数来制定 driver 地址1
browser = Browser(driver_name='chrome')
设置打开浏览器的大小,不设置打开一个默认大小的浏览器
1
browser.driver.set_window_size(1920, 1080)
访问指定地址
1
browser.visit('http://google.com')
在
name=q
的域内输入内容1
browser.fill('q', 'splinter - python acceptance testing for web applications')
找到
name=btnK
按钮,并点击,这是一个链式操作1
browser.find_by_name('btnK').click()
打印此时页面的 document,这时打印出来的是浏览器加载完动态效果的代码
1
2html = browser.html
print(html)截图,在制定的文件名后加一个随机字符串并截图,后缀默认为
.png
,方法返回最终的图片地址1
browser.screenshot(name='/Users/wxnacy/PycharmProjects/study/python/splinter_demo/screenshot', suffix='.jpg')
判断页面的文字中是否包含某个文字
1
2
3
4if 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.quit()
关于浏览器和页面操作还有很多方法,详见 API 文档