ravage84 / phpunit-selenium2-pageobjects
PHPUnit Selenium2 PageObjects
Requires
- php: >=5.3.3
- phpunit/phpunit-selenium: 1.4.2
This package is auto-updated.
Last update: 2022-02-01 12:36:26 UTC
README
PageObjects是通过对象表示网页服务,从而抽象出Selenium的内部结构和页面结构的一种想法。
您可以在以下链接中阅读有关PageObjects的所有信息:http://code.google.com/p/selenium/wiki/PageObjects
此外,此仓库还包含一个示例应用程序和功能测试:https://github.com/nationalfield/phpunit-selenium-pageobjects/tree/master/Example
原因
您应该将良好的编程实践应用于测试。测试是代码。糟糕的代码可能会显著增加您的技术债务。测试应该是DRY(不要重复自己)。
安装
如果您使用Composer,只需将ravage84/phpunit-selenium2-pageobjects
添加到项目中的composer.json
文件中作为依赖项。
{
"require-dev": {
"phpunit/phpunit": "3.7.*"
}
}
要求
- Composer
- PHP 5.3
- PHPUnit Selenium 1.3.x
行为
获取器和设置器
您应该为每个字段定义一个获取器和设置器,以供功能测试之外使用。永远不要在PageObject之外手动访问映射、定位器或映射键。
映射
映射使用CSS选择器定义。
<?php protected $map = array( 'first_name' = '#account_fname', 'last_name' = '#account_lname', );
当你实例化一个PageObject时,它会调用assertMapConditions
,该函数会自动遍历所有$map
元素并断言它们的存在。
注意:还有一个方法叫做
assertPreConditions
,它在assertMapConditions
之前执行。实现此方法允许你执行像waitForElementPresent
这样的方法。
使用映射
要使用映射元素,只需将ByMap
附加到您要利用的方法名称的末尾即可。例如
<?php $this->typeByMap('first_name', 'Graham'); $this->typeByMap('last_name', 'Christensen');