zoukankan      html  css  js  c++  java
  • Splinter 的认识和基础应用

      Splinter 是一个使用Python开发的开源web应用测试程序,它可以帮助我们实现自动浏览站点和与其进行交互。它是依赖于其它python插件或拓展进行的,所以我们使用它之前需要安装一系列的依赖包。

    依赖包
    Splinter0.7.2依赖以下包:
    Selenium(版本>=2.44.0)
    Django(版本>=1.5.8,<1.7)
    Flask(版本>=0.10)
    lxml(版本>=2.3.6)
    zope.testbrowser(版本>=4.0.4)
    cssselect

      当我们控制浏览器时还需要下载一些浏览器的driver,并要将这些driver的路径添加到环境变量中,我们才能随便的使用它们。

      splinter常用的一些命令

    定位元素:
    browser.find_by_css('h1')
    browser.find_by_tag('h1')
    browser.find_by_name('name')
    browser.find_by_id('firstheader')
    browser.find_by_value('fquery')
    browser.find_by_xpath('//h1')
    browser.find_element_by_XXX() # element 表示定位的是单个
    browser.find_elements_by_XXX() # elements 表示定位的是多个,不能直接进行操作

    html控件应用:
    test单行文本框、testarea多行文本框:用于填充事件
    select下拉框:用于选择事件
    radio单选框:用于单选事件
    button按钮:用于点击事件
    checkbox复选框:用于复选事件
    a超链接:用于跳转事件
    
    
    常用的操作命令:
    click   点击
    submit 提交表单 fill 一次性填充 choose 单选 type 键入式填充
    clear 清除元素的内容
    send_keys 在元素上模拟按键输入 mouse_over 鼠标指针位于元素上方的事件 mouse_out 鼠标指针位于元素下方的事件

    使用事例:

    from splinter import Browser
    
    b = Browser('chrome')   #使用谷歌浏览器,如果省略了传入的字符串,则默认使用firefox
    url = "http://www.baidu.com"  #控制浏览器进入的站点
    b.visit(url)
    b.fill('q', 'splinter - python acceptance testing for web applications')   #使用splinter向站点中填充一个内容
    
        button = browser.find_by_name('btnG')   #获取站点中的按钮
    
        button.click()   #单击按钮提交填充的数据
        if browser.is_text_present('splinter.readthedocs.org'):   #判断是否存在这个字符串
            print "Yes, the official website was found!"
        else:
            print "No, it wasn't found... We need to improve our SEO techniques"
    from splinter.browser import Browser
    from time import sleep
    
    b = Browser()
    b.visit("http://www.baidu.com")
    
    print(u'稍后进行查找')
    time.sleep(8)
    
    b.find_by_id('kw').fill("splinter")
    b.find_by_id('su').click()
    
    print(u'查找结束')
    time.sleep(10)
    
    b.quit()
  • 相关阅读:
    Virt-install用法:
    kvm笔记
    配置centos7解决 docker Failed to get D-Bus connection 报错
    linux系统下的用户文件句柄数限制
    Linux下如何通过命令检查网卡是否插上网线
    data命令详解
    cron job 里面,如何让脚本半分钟运行一次?
    bash编程之循环控制:
    bash编程之case语句,函数
    0129集训授课——面向对象思想(一):封装与抽象
  • 原文地址:https://www.cnblogs.com/lovele-/p/9235592.html
Copyright © 2011-2022 走看看