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定位方式

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

  • 相关阅读:
    Leetcode 349. Intersection of Two Arrays
    hdu 1016 Prime Ring Problem
    map 树木品种
    油田合并
    函数学习
    Leetcode 103. Binary Tree Zigzag Level Order Traversal
    Leetcode 102. Binary Tree Level Order Traversal
    Leetcode 101. Symmetric Tree
    poj 2524 Ubiquitous Religions(宗教信仰)
    pat 1009. 说反话 (20)
  • 原文地址:https://www.cnblogs.com/zzzao/p/10165736.html
Copyright © 2011-2022 走看看