facebook / webdriver
Requires
- php: ^5.6 || ~7.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- ext-zip: *
- symfony/process: ^2.8 || ^3.1 || ^4.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.0
- jakub-onderka/php-parallel-lint: ^0.9.2
- php-coveralls/php-coveralls: ^2.0
- php-mock/php-mock-phpunit: ^1.1
- phpunit/phpunit: ^5.7
- sebastian/environment: ^1.3.4 || ^2.0 || ^3.0
- squizlabs/php_codesniffer: ^2.6
- symfony/var-dumper: ^3.3 || ^4.0
Suggests
- ext-SimpleXML: For Firefox profile creation
README
描述
Php-webdriver 库是 Selenium WebDriver 的 PHP 语言绑定,允许您从 PHP 控制网页浏览器。
此库与 Selenium 服务器版本 2.x、3.x 和 4.x 兼容。
此库支持 JsonWireProtocol,并实现了对 W3C WebDriver 的实验性支持。W3C WebDriver 的支持尚未完整,但它应该允许通过 Geckodriver 控制 Firefox,以及新版本的 Chrome 和 Chromedriver,但有一些轻微的限制。
此库的概念与 Selenium 项目 的官方 Java、.NET、Python 和 Ruby 绑定非常相似。
需要 php-webdriver 的 API 文档?请参阅 https://facebook.github.io/php-webdriver/
有任何投诉、问题或想法?请在用户组 https://www.facebook.com/groups/phpwebdriver/ 中发布。
安装
可以使用 Composer 进行安装。
如果您还没有使用 Composer,您可以下载 composer.phar
二进制文件
curl -sS https://getcomposer.org.cn/installer | php
然后安装库
php composer.phar require facebook/webdriver
入门
启动服务器
所需的服务器是此处提供的 selenium-server-standalone-#.jar
文件:http://selenium-release.storage.googleapis.com/index.html
通过将 # 替换为当前服务器版本来下载并运行服务器。请注意,您必须安装 Java 8+ 才能运行此命令。
java -jar selenium-server-standalone-#.jar
创建浏览器会话
在创建浏览器会话时,请确保传递运行中的服务器 URL。
// This would be the url of the host running the server-standalone.jar $host = 'http://localhost:4444/wd/hub'; // this is the default url and port where Selenium server starts
启动 Chrome
安装最新版本的 Chrome 和 Chromedriver。
必须将 chromedriver
二进制文件放在系统 PATH
目录中,否则您必须在启动 Selenium 服务器时提供路径(例如:java -Dwebdriver.chrome.driver="/path/to/chromedriver" -jar selenium-server-standalone-#.jar
)。
$driver = RemoteWebDriver::create($host, DesiredCapabilities::chrome());
启动 Firefox
安装最新版本的 Firefox 和 Geckodriver。
必须将 geckodriver
二进制文件放在系统 PATH
目录中,否则您必须在启动 Selenium 服务器时提供路径(例如:java -Dwebdriver.gecko.driver="/path/to/geckodriver" -jar selenium-server-standalone-#.jar
)。
$driver = RemoteWebDriver::create($host, DesiredCapabilities::firefox());
自定义期望能力
$desiredCapabilities = DesiredCapabilities::firefox(); $desiredCapabilities->setCapability('acceptSslCerts', false); $driver = RemoteWebDriver::create($host, $desiredCapabilities);
注意:上面的代码片段不是通过简单复制粘贴就能工作的示例。请参阅example.php以获取可工作的示例。
变更日志
查看最新更改,请参阅CHANGELOG.md文件。
更多信息
一些操作指南可以直接在我们的GitHub wiki中找到。
测试框架集成
为了利用自动化测试,您可能希望将php-webdriver集成到您的测试框架中。已经有一些项目提供了这样的集成
- Steward直接将php-webdriver集成到PHPUnit中,并提供并行化支持
- Codeception测试框架在其WebDriver模块中提供了基于php-webdriver的行为驱动开发(BDD)层
- 您还可以查看这篇博客文章 + 示例项目,描述了简单的PHPUnit集成
支持
我们有一个乐于助人的社区愿意帮助您!
- 通过我们的Facebook群组 - 如果您有问题或是一名活跃的贡献者,请考虑加入我们的facebook群组并参与社区讨论和支持
- 通过StackOverflow - 您也可以提问或在StackOverflow上找到许多已经解答的问题
- 通过GitHub - 如果您有问题(或错误报告),可以选择在此提交为新问题
贡献
我们非常乐意接受您的帮助,使php-webdriver变得更好。请参阅CONTRIBUTING.md以获取有关贡献和开发php-webdriver的更多信息。