前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python + Splinter 实现浏览器自动化操作入门指南

Python + Splinter 实现浏览器自动化操作入门指南

作者头像
木制robot
发布2018-04-11 15:44:07
2.6K0
发布2018-04-11 15:44:07
举报

前言

Splinter 是用 Python 开发的一个开源web自动化测试的工具集。 它可以帮你自动化浏览器的行为,比如浏览 URLs 并和页面进行交互。

快速上手

安装

从终端运行:

pip install splinter

安装相应的浏览器驱动

Chrome浏览器驱动:https://sites.google.com/a/chromium.org/chromedriver/downloads Firefox浏览器驱动:https://github.com/mozilla/geckodriver/releases 根据相应的浏览器下载对应的驱动版本,并将驱动所在的路径加入环境变量。

创建一个 Browser 实例

from splinter import Browser
browser = Browser()
# 指定driver为chrome浏览器
# browser = Browser(driver_name='chrome')

提示: 如果你不为 Browser 指定 driver, 那么会默认使用 firefox。

访问百度搜索页面

使用 browser.visit 方法可访问任意网站. 让我们访问一下百度搜索页面:

browser.visit('http://baidu.com')

输入搜索关键词

页面加载完毕后,你能进行一系列的交互,比如点击,输入框填充字段,选择单选按钮和复选框。让我们在百度搜索框中填充 splinter - python acceptance testing for web applications

browser.fill('wd', 'splinter - python acceptance testing for web applications')

点击搜索按钮

告诉 Splinter 哪一个按钮需要点击。这个按钮 - 或任意其他元素 - 可以通过它的css, xpath, id, tag 或 name来识别。

通过以下操作找到百度搜索按钮:

button = browser.find_by_xpath('//input[@type="submit"]')

提示一下,这个 xpath 语法所在的按钮 会在百度搜索页面的源码中被找到。

找到按钮后,我们就可以进行点击操作:

button.click()

提示: 以上展示的两步可以结合为一行代码,如下所示:

browser.find_by_xpath('//input[@type="submit"]').click()

查看 Splinter 官方网站是否在搜索结果中

点击搜索按钮后,你可以通过以下步骤检测 Splinter 官方网站是否在搜索结果中。

if browser.is_text_present('splinter.readthedocs'):
    print "Yes, found it! :)"
else:
    print "No, didn't find it :("

在这个小例子中, 我们只是打印出了结果. 当写测试的时候,你需要使用断言。

关闭浏览器

结束测试后,我们需要使用 browser.quit 关闭浏览器:

browser.quit()

总结

最后完整的代码如下所示:

from splinter import Browser
browser = Browser()
browser.visit('http://baidu.com')
browser.fill('wd', 'splinter - python acceptance testing for web applications')
button = browser.find_by_xpath('//input[@type="submit"]').click()
if browser.is_text_present('splinter.readthedocs'):
    print "Yes, the official website was found!"
else:
    print "No, it wasn't found... We need to improve our SEO techniques"
browser.quit()

翻译计划

上述的介绍是来自于我近期翻译的 Splinter 文档中快速上手部分,非常感谢一叶染秋加入翻译计划。我们目前只是翻译了一小部分,还有很多没有翻译,如果你想加入翻译计划可以给 Github 上的Splinter 中文文档项目提交PR,翻译前请先私信我你想翻译的章节,避免大家重复翻译。如果有翻译不对或者不好的地方也欢迎大家多多提建议。

彩蛋

最早的时候大家都会使用 Phantomjs 来实现headless,但是多多少少会有一些不足的地方。现在 Chrome 和 Firefox 都已经提供了相应的 headless 模式,而且 Splinter 也已经集成。

from splinter import Browser
browser = Browser(driver_name='chrome', headless=True)
# browser = Browser(driver_name='firefox', headless=True)

通过一个简单的参数即可启用 headless 模式,赶快去试试吧!(Ps: 我为这个功能做了一点微小的工作)

参考

  1. Splinter 官方文档
  2. Splinter 中文文档
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-10-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 快速上手
      • 安装
      • 安装相应的浏览器驱动
      • 创建一个 Browser 实例
      • 访问百度搜索页面
      • 输入搜索关键词
      • 点击搜索按钮
      • 查看 Splinter 官方网站是否在搜索结果中
      • 关闭浏览器
      • 总结
  • 翻译计划
  • 彩蛋
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档