zoukankan      html  css  js  c++  java
  • Selenium框架

    原理:
    driver可以理解为remoteserver。我们代码就是客户端。通过http交互信息。
    如启动浏览器,代码和remoteserver建立连接生成一个seession用于交互,
    driver用的是webdriver wire协议,把客户端代码转化成浏览器能识别的操作指令,相当于翻译器,从而驱动

     

    Page Object:

    Page Object将测试对象及单个的测试步骤封装在每个Page对象中,以page为单位进行管理。

     

    自动化和手工

    1.互补型,职能不同

    2.测试工程师必须非常明确测试的核心价值是发现缺陷,自动化测试不能“创造性”地发现软件系统的缺陷,对于美观无能为力

    3.自动化主要完成重复工作,智能判断,出具报告  编写+维护成本

     

    框架特点:

    1.       层级明确,每个层管理自己的东西,底层可以共用,减少资源浪费,层级间都有继承关系,调用方便,公用的资源都分装好,减少改动带来的效率低问题。

    2.       实例化都放在底层,方便顶层调用,不需要再自己实例化

    3.       稳定性,在底层管理元素已经做了是否存在html和是否display的等待,再在click的二次封装中确保能点击成功,do while

    4.       每个项目都可以共用底层的东西,减少不必要的资源浪费。

    5.       Log封装在底层,利于快速发现问题的来源

     

    底层:启动浏览器,load对象,testng的实现如重跑,log的实例化,工具类(report),错误处理

    api层:所有selenium的2次封装,公用函数,脚本

    第三层:项目的公用脚本

    第四层:case

     

    稳定性:

    1.       底层封装基础的等待(element要存在于html,isdisplayed)

    2.       二次封装再加一次等待 用do while

    3.       联系上下操作,看是否要加场景等待,如点了一个取消弹出框按钮,再去触发action右键,这时候必须加等待。 

     

    遇到问题:

    1.有些Lock按钮,点的时候会把一些输入框变成readonly,检查的东西会比较多。这时候用webdriver点一次有时候会不生效。

    这时候需要写一个方法,注意到当按钮锁的时候,class为lock否则就是unlock,用do while,当class等于unlock会执行点击,当检查到class为lock的时候才break出循环。

    2.alert这些最好加个判断,检查是否有alert才进行下一步操作。

    3.不稳定,2层等待,第一层是看是否html存在此元素,第二层是isdispalyed看是否元素是hidden

     

     

    显性等待,隐形等待:

    1.       显性 driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

    可以封装在方法里面,对不同的操作修改等待时间

    2.       隐性

    500ms一次

    WebDriverWait wait=new WebDriverWiat(driver,30);

    (1)Wait.until(ExpectedConidtions.visibilityOfElementLocated、clickable)

    (2)Wait.until(new Function<WebDriver,Boolean>)(){

    Public Boolean apply(Webdriver driver)

    }

     

    自定义时间  FluentWait

    Wait<WebDriver>wait=newFluentWait<WebDriver>(driver).withTimeout(5, TimeUnit.SECONDS).pollingEvery(1/10, TimeUnit.SECONDS);   

  • 相关阅读:
    if判断语句和循环语句
    列表,元祖,字典的详细概述
    day10
    day09
    day08
    java---基本程序设计总结
    day07
    day06
    day05
    day04
  • 原文地址:https://www.cnblogs.com/season-xie/p/5330865.html
Copyright © 2011-2022 走看看