zoukankan      html  css  js  c++  java
  • day15 webUI自动化

     一、webdriver的原理

    driver = webdriver.Chrome()创建浏览器,当做我们的服务端,代码就是客户端,和客户端进行ip绑定,基于http协议发送post请求

    WebDriver

    webdriver是按照server – client的经典设计模式设计的。

    webdriver的作用就是创建一个新的浏览器实例,也就是启动一个Server端。

    (Starts the service and then creates new instance of chrome driver)

    server端就是我们的Remote server,也就是我们通过各个不同浏览器所启动的浏览器实例,在我们脚本启动浏览器后,这个浏览器就可以称之为我们的Remote server,它的职责就是等待client发送请求并做出相应处理。

    client 就是我们的测试代码,我们测试代码中的所有操作,比如打开浏览器,寻找元素,点击都是以http请求的方式发送给被测试浏览器,也就是我们的Remote server,remote server接受请求,并执行相应操作,并在response中返回执行状态、返回值等信息(这里调用的接口是浏览器的源生API,而每一个浏览器都有自己的一套接口信息,这也就是为什么我们要安装不同的驱动的原因)

    WebDriver工作流程

    1、通过WebDriver创建一个浏览器服务,remote server。

    2、脚本启动时会在新的线程中启动一个浏览器,并绑定特定的端口,没个浏览器有不同的端口段。

    3、client 创建1个session,在该session中通过http请求向remote server发送restful的请求,remote server解析请求,完成相应操作并返回response。

    4、分析response,继续执行脚本还是结束执行

    command.py

    Command类中定义了WebDriver的一些常用的常量。

    remotewebdrvier.py

    所有浏览器webdrvier的基类,其中包含了所有webdriver的api接口

    remote emote_connection.py

    包含启动Remote WebDrvier server,执行client请求,self._commands是selenium的核心请求参数,根据对应的Command常量,发送不同的http请求。

    Page Object Model(POM)的优势
    1.    POM提供了一种在UI层操作、业务流程与验证分离的模式,这使得测试代码变得更加清晰和高可读性
    2.    对象库与用例分离,使得我们更好的复用对象,甚至能与不同的工具进行深度结合应用
    3.    可复用的页面方法代码会变得更加优化
    4.    更加有效的命名方式使得我们更加清晰的知道方法所操作的UI元素。例如我们要回到首页,方法名命名为: gotoHomePage(),通过方法名即可清晰的知道具体的功能实

    二、Selenium-WebDriverApi接口详解

    18种定位方式:8种单数、8种复数、2种父类形式

    (1)xpath定位方式

    //*  取整个页面下的所有元素

  • 相关阅读:
    2019安徽省程序设计竞赛 I.你的名字(序列自动机)
    poj3522Slim Span(暴力+Kruskal)
    Uva1349Optimal Bus Route Design(二分图最佳完美匹配)(最小值)
    基于Python的Web应用开发实战——3 Web表单
    [nRF51822]5.触摸按键
    [nRF51822]4.GPIO控制蜂鸣器
    [nRF51822]3. GPIO输入按键检测
    [nRF51822]2. 跑马灯
    [nRF51822]1. 点亮一个LED
    [nRF51822]0.nRF51822的开发环境
  • 原文地址:https://www.cnblogs.com/zzzao/p/10165736.html
Copyright © 2011-2022 走看看