turgutsaricam / webdriver-tools
用于facebook/webdriver的通用类
Requires
- php: >=7.2
- php-webdriver/webdriver: *
README
此仓库包含在运行PHP的Selenium测试时,与facebook/webdriver一起工作时通常需要的通用类。
WebDriver包
此包需要facebook/webdriver。基本上,它应该用于Selenium测试。此包提供了一个AbstractDriverManager,用于处理在不同标签页中加载不同URL、如果URL已在标签页中加载则切换到该标签页、为每个URL添加参数以提示代码覆盖率(与CoverageHandler中解释的提示相同)、修改JavaScript变量window.ajaxurl(这是WordPress站点的默认变量)以启用AJAX请求的代码覆盖率、关闭过多的浏览器标签、设置驱动程序并登录到待测试网站、刷新、关闭、打开标签页等。
要使用此包,创建一个扩展AbstractDriverManager的类,实现所需的方法(或使用DefaultDriverManager)。AbstractDriverManager需要一个AbstractSetupStrategy来设置驱动程序并登录到网站。要提供策略,只需创建一个类并扩展它到AbstractSetupStrategy,并实现所需的方法。此包提供了WordPressSetupStrategy。如果您正在测试WordPress站点,可以直接使用它。
在您的测试中,不要直接使用webdriver,而是通过AbstractDriverManager执行每个驱动程序操作。否则,使用驱动程序管理器就毫无意义。
开发
要测试此项目,在其他项目的composer.json中包含它,使用本地仓库定义以下内容
{
"repositories": [
{
"type": "path",
"url": "path/to/local/directory/of/webdriver-tools",
"options": {
"symlink": false
}
}
],
}
之后,从那个其他项目的vendor目录中删除vendor/turgutsaricam/webdriver-tools目录,可选地将turgutsaricam/webdriver-tools的版本在composer.json的require(-dev)项下设置为@dev,然后运行composer update turgutsaricam/webdriver-tools。这将把本地开发仓库中的文件复制到那个其他项目的vendor目录。通过这种方式,可以在提交更改到git之前测试更改。
待办事项
- 编写测试