• python selenium L1


     

    一、自动化测试简介

            最后验收

    需求分析  - 系统测试

    架构模块设计 - 集成测试

    编码    - 单元测试

    自动化测试的应用场景

      1  任务明确,且不会频繁变动

      2  软件需求变更少

      3  项目周期长,测试脚本可以复用

      4  有类似项目

    常用的测试工具

       1    QTP : 主要是用于回归测试和测试同一软件的新版本

      2  Robot Framework : python 编写的功能自动化测试框架, 良好的可扩展性

      3  Selenium : 是一个用于 Web 应用程序测试的工具, 支持多平台、多浏览、多语言去实现自动化测试

    Selenium :

      1  开源、免费

      2  支持主流浏览器: FireFox , Chrome , IE

      3  跨平台: Windows , Linux , Mac

      4  多语言: Java , Python ,Ruby , Php , JS

      5  对web支持良好, 丰富简单的API

      

    二、web 调试工具和环境搭建

      1  环境安装

        python + pip + selenium

        安装Chrome webdriver 

          http://blog.csdn.net/zhaoyabei/article/details/52355021

      2  firefox 前端工具介绍

        fireBug:FireFox 浏览器下的一套开发类插件 , 查看页面上的元素,从而根据其属性进行定位

      3  html , js , xml , css

    三、元素定位及操作

    获取元素

    元素名称 webdriver API 说明
    id find_element_by_id()  
    name find_element_by_name()  
    class name find_element_by_class_name()  
    tag name  find_element_by_tag_name()  
    link text find_element_by_link_text()  
    partial link text find_element_by_partial_link_text()  
    xpath find_element_by_xpath()  
    css selector find_element_by_css_selector()  

    元素操作

    方法 说明
    clear 清除元素内容
    send_keys 模拟按键输入
    click 点击
    submit 提交表单

    XPath 用于在 XML 文档中通过元素和属性进行导航

      xpath节点类型: 

        元素,属性,文本,命名空间,指令处理,注释及文档,

        xpath:通过路径表达式从XML文档中选取节点或节点设置

    表达式 结果 说明
    /xxx 选取根节点xxx  
    /xxx/yyy 根据绝对路径选择元素  
    //xxx 整个文档扫描,找到所有xxx元素  
    //xxx/yyy 所有父元素为xxx的yyy元素  
    . 选取当前节点的父元素节点  
    .. 选取父元素地址  
    //xxx[@id]  选取所有xxx元素中有id属性的元素  
    //xxx[@id=yyy]  选取所有xxx元素id属性为yyy的元素  

        xpath:通过路径表达式从XML文档中选取节点或节点设置

    表达式 结果
    //*[count(xxx)=2] 统计xxx元素个数=2的节点
    //*[local-name()='xxx'] 找到tag为xxx的元素
    //*[starts-with(local-name(),'x')] 找到所有tag以x开头的元素
    //*[contains(local-name(),'x')] 找到所有tag包含x的元素
    //*[string-length(local-name()) = 3] 找到所有tag长度为3的元素
    //xxx | //yyy 多个路径查找

    四、ActionChains类与输入事件

      1  from selenium.webdriver.common.action_chains import ActionChains

      2   ActionChains(driver):用于生成模拟用户行为

      3   perform():执行存储行为

        鼠标事件
    表达式 说明
    context_click 右击事件
    double_click 双击事件
    drag_and_drop 拖动
    move_to_element() 鼠标停在一个元素上
    click_and_hold 按下鼠标左键在一个元素上

    键盘事件:send_keys()
    from selenium.webdriver.common.keys import Keys
    表达式 说明
    send_kyes(Kyes.BACK_SPACE) 退格键
    send_kyes(Kyes.CONTRL, 'a') 全选
    send_kyes(Kyes.CONTRL, 'v') 粘贴
    send_kyes(Kyes.CONTRL, 'c') 复制
    send_kyes(Kyes.CONTRL, 'x') 剪切
    send_kyes(Kyes.ENTER) 回车

    五、 对话框和多窗口

    测试脚本中的等待方法

      1  等待是为了使脚本执行更加稳定

      2  常用的休眠方式:time模块的sleep方法

    selenium模块中的等待方法
    implicitly_wait() 设置webdriver等待时间
    WebDriverWait 等待条件满足或者超时后退出 , from selenium.webdriver.support.ui import WebDriverWait

      Alter对象
    switch_to_alert() 切到alter,返回一个alter对象
    accept 确认
    dismiss 取消
    send_keys() 有输入框才能使用,否则报错

    EG :

    from selenium import webdriver
    
    browser = webdriver.Chrome()
    browser.get("http://www.baidu.com")
    browser.find_element_by_id("kw").send_keys("selenium")
    browser.find_element_by_id("su").click()
    #browser.quit()
    

      

  • 相关阅读:
    Java NIO使用及原理分析(三) 分类: Java 2014-03-12 17:56 447人阅读 评论(0) 收藏
    Java NIO使用及原理分析(二) 分类: Java 2014-03-12 17:55 465人阅读 评论(0) 收藏
    Java NIO使用及原理分析 ( 一 ) 分类: Java 2014-03-12 17:52 637人阅读 评论(0) 收藏
    网络编程中的Socket详解---Socket重要参数详解 分类: Android 2014-03-11 16:25 2066人阅读 评论(0) 收藏
    网络编程中的Socket详解---Socket编程实践详解 分类: Java 2014-03-11 16:19 549人阅读 评论(0) 收藏
    网络编程中的Socket详解---Delayed Ack(Ack确认延迟) && Nagle Algorithm(纳格算法) 分类: Java 2014-03-11 15:46 2316人阅读 评论(0) 收藏
    关于ThreadLocal的一道面试题(酷我公司) 分类: Android 2014-03-04 11:33 2124人阅读 评论(5) 收藏
    Java中的并发库学习总结 分类: Java 2014-03-03 15:12 3115人阅读 评论(3) 收藏
    深入解析Java中volatile关键字的作用 分类: Java 2014-03-03 13:47 1441人阅读 评论(3) 收藏
    Android源码的git下载地址 分类: Android 2014-02-27 15:26 1111人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/zsr0401/p/6478451.html
Copyright © 2020-2023  润新知