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

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

  • 相关阅读:
    【算法18】重排数组元素使得所有的奇数位于所有偶数之前
    php函数ob_start()、ob_end_clean()、ob_get_contents()
    php代码调试
    判断文件存在是用file_exists 还是 is_file
    ubuntu屏幕截图工具:scrot,可截鼠标拖曳的矩形区域图形
    mysql常用的技巧
    用户角色权限设计
    解决ubuntu耳机和音箱同时发音
    SSH免密码登录
    IE, Firefox下,checkbox的钩钩一旦勾上,画面再刷新,钩钩还是勾上的解决方案
  • 原文地址:https://www.cnblogs.com/zzzao/p/10165736.html
Copyright © 2020-2023  润新知