zoukankan      html  css  js  c++  java
  • Selenium PageFactory

    PageFactory是为了支持页面设计模式而开发出来的,它的方法在selenium.support库里面。

    PageFactory它提供初始化页面元素的方法,如果页面存在大量的AJAX的技术,只要页面更新一次,它就好重新查找一次元素,所以不会出现StaleElementException这个error,

    如果你不想要它每次都更新,你可以加上@CacheLookup.

    页面设计模式,可以提供你一个接口,然后你在这个接口上面,构建你自己项目中的页面对象,使用PageFactory使得测试更简单,更少的代码编写。

    如果@FindBy没有指定,它会默认的查找id的属性,然后是name属性,如果还没有找到就会报错。 如果这个元素存在,我们不用担心它, pageFactory会初始化这个元素,不会报任何错误。

    先看个列子:

    import org.openqa.selenium.WebDriver;

    import org.openqa.selenium.WebElement;

    import org.openqa.selenium.support.FindBy;

    import org.openqa.selenium.support.PageFactory;

    public class BaiduSearchPage {

     

      WebDriver driver;

      @FindBy(id = "kw")

      @CacheLookup

      WebElement searchField;

      @FindBy(id = "su")

      @CacheLookup

      WebElement searchButton;

      public BaiduSearchPage(WebDriver driver){

        this.driver = driver;

        PageFactory.initElements(driver,this);

      }

      public void inputText(String search){

        searchField.sendKeys(search);

      }

      public void clickButton(){

        searchButton.click();

      }

    }

    import org.openqa.selenium.WebDriver;

    import org.openqa.selenium.firefox.FirefoxDriver;

    public class Test {

    public static void main(String[] args) {

      BaiduSearchPage searchPage;

      WebDriver driver =new FirefoxDriver();

      driver.manage().window().maximize();

      driver.get("http://www.baidu.com");

      searchPage =new BaiduSearchPage(driver);

      searchPage.inputText("selenium");

      searchPage.clickButton();

      }

    }

     

    我们平时写查找元素,喜欢倾向于driver.findElement(by)这种方法,但是有的时候我们需要考虑查找失败,或者AJAX的情况,但是pageFactory就不需要,这使得查找页面元素更简单,快速。

    基于页面设计对象, 我们可以编写更少的代码去完成更多的测试案例。

  • 相关阅读:
    解决magento后台无法登陆/登陆没有反应的方法
    修正magento快速搜索返回结果不准确
    怎么在手机浏览器上访问电脑本地的文件,局域网内,自建WiFi也可以
    php中cookie+mysql实现的购物车代码
    深入分析Php处理浮点数的问题
    Ecshop安装过程中的的问题:cls_image::gd_version()和不支持JPEG
    推荐mysql优化的21条经验
    Magento产品批量导入方法?
    Magento控制器
    grub uuid设置
  • 原文地址:https://www.cnblogs.com/tman/p/4397860.html
Copyright © 2011-2022 走看看