tzander / page-factory

适用于Selenium2的PHP页面工厂

dev-master 2014-07-03 06:23 UTC

This package is not auto-updated.

Last update: 2024-09-28 13:35:39 UTC


README

支持PHP与Selenium2的PageObject模式

安装

使用Composer安装

{
    "require": {
        "tzander/page-factory": "dev-master"
    }
}

示例

您需要包含Autoload.php并创建一个页面类。

 require_once __DIR__ . '/library/Autoload.php';

 class BingSearchPage {

    /**
     * @var PHPUnit_Extensions_Selenium2TestCase_Element
     */
     public $sb_form_q;

     public function search() {
         $this->sb_form_q->value('selenium');
         $this->sb_form_q->submit();
         return PageFactory::initElements($this->getTestCase(), 'SearchResultPage');
     }
 }

属性必须是公开的,并且可以是元素的名字或id属性。

现在为了返回一个初始化的对象,我们需要执行以下操作

  class  SearchTest{

    public function shouldfindSelenium(){
          $page = PageFactory::initElements($this, 'BingSearchPage');
          $resultPage = $page->search();
          $this->assertInstanceOf('SearchResultPage', $resultPage);
    }
  }

使用注解

您也可以使用@find注解来定位元素。

  /**
  * @find byXpath='a[@class=test]'
  */
  public $link;

或以下任一find方法

byId, byName, byXpath, byCssSelector, byClassName。