zoukankan      html  css  js  c++  java
  • 简述-selenium对web实现自动化测试

    首先,我是基于python进行对selenium操作和使用的,主要分为selenium的实现原理和selenium的操作这两大部分的简单分享(由于本人水平有限,仅做基础的概述和总结):

    一、selenium原理(selenium1—>selenium2—>selenium3):

    1.对于每个Selenium脚本的命令,都会创建一个HTTP请求并将其发送到浏览器驱动程序;

    2.每一个命令的执行结果都会返回给自动化代码;

    3.ChromeDirver创建session时打开了浏览器,Selenium代码和浏览器驱动的交互都根据ChromeDriver创建的sessionId。

    版本的发展有selenium1—>selenium2—>selenium3:

    selenium各版本简介
     版        本 版 本 特 点 版  本  功  能
     selenium1  selenium IDE+selenium Grid+selenium RC(核心) selenium RC包括selenium server和client libraries,selenium server用来操作浏览器,client libraries用来编写测试脚本,RC是执行浏览器中的JavaScript来翻译执行selenium脚本的代码命令。
     selenium2  selenium1+webDriver(核心) webDriver通过原生浏览器支持或者浏览器扩展来直接控制浏览器。
     selenium3  selenium2-seleniumRC 增加支持了一些系统和版本,主要还是webDriver。

     

    二、selenium实现(基于python编写):

     1 #coding:utf-8
     2 from selenium import webdriver
     3 
     4 
     5 def main():
     6     #设置参数访问url
     7     url = 'http://www.zhilian.com/'
     8     #创建webDriver对象,操作火狐浏览器
     9     driver = webdriver.Firefox()
    10     driver.get(url)
    11     #隐形等待10S
    12     implicitly_wait(10)
    13     #定位元素,操作元素
    14     driver.find_element_by_id('kw').send_keys('Python')
    15     implicitly_wait(5)
    16     driver.find_element_by_id('su').click()
    17     #退出
    18     driver.quit()
    19 
    20 
    21 if __name__ == "__main__":
    22     main()

    其中selenium中元素定位的方式有:

    1.id 不重复(常用)
    2.name 重复
    3.class_name 类名
    4.tag_name 标签名

    5.link_text / partial_link_text 链接文本

    6.Xpath XML元素路径(常用)
    7.Css CSS选择器

    其中selenium的一些常用操作:

    (1)模拟鼠标的移动事件:
    from selenium import webdriver
    # 模拟鼠标的类包
    from selenium.webdriver.common.action_chains import ActionChains
    """
    鼠标对应操作方法:
    context_click():右击事件 double_click():双击事件
    drag_and_drop():拖动事件 move_to_element():鼠标停留在一个元素上
    click_and_hold:按下鼠标左键停留在一个元素上
    """
    # 导入键盘类
    from selenium.webdriver.common.keys import Keys
    """
    键盘对应对应的方法:
    send_keys(Keys.BACK_SPACE) 退格键
    send_keys(Keys.CONTRL,'a'): 全选,'c/v/x'分别复制粘贴剪切
    send_keys(Keys.ENTER): 回车
    """

    FireFox浏览器中有一款适合元素定位的插件firebug比较好用;

    (2)处理多窗口和alter弹窗:

    用到switch_to_alter();

    ---------------------------------------------------------------------------

    只是个人平时的总结和分享,欢迎批评指正。

  • 相关阅读:
    Linux设备驱动之Ioctl控制
    虚拟内存与物理内存的区别
    怎么远程控制他人电脑
    二维数组和指针
    二维数组和指针(C语言)
    帧率、码流与分辨率相关知识
    深入理解FIFO
    安装lsb_release
    Linux初学之vmware Workstation 网络连接三种模式
    RTSP协议学习笔记
  • 原文地址:https://www.cnblogs.com/zhangcnblogs/p/11634338.html
Copyright © 2011-2022 走看看