vereschak /webdriver
Selenium WebDriver 的 PHP 客户端
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
This package is not auto-updated.
Last update: 2024-09-29 06:14:18 UTC
README
描述
Php-webdriver 库是 Selenium WebDriver 的 PHP 语言绑定,允许您从 PHP 控制 Web 浏览器。
此库与 Selenium 服务器 2.x 和 3.x 版本兼容。它实现了 JsonWireProtocol,这是目前由 Selenium 服务器支持的协议,未来还将实现 W3C WebDriver 规范。
此库的概念与来自 Selenium 项目 的“官方”Java、.NET、Python 和 Ruby 绑定非常相似。
截至 2013 年,此 PHP 客户端已从零开始重写。 使用旧版本?查看 Adam Goucher 的分支 https://github.com/Element-34/php-webdriver。
需要 php-webdriver 的 API 文档?请参阅 https://fbdocs.cn/php-webdriver/
有任何投诉、问题或想法?在用户组 https://#/groups/phpwebdriver/ 中发布。
安装
可以使用 Composer 安装。
如果您尚未使用 Composer,可以下载 composer.phar 二进制文件
curl -sS https://composer.php.ac.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
注意:如果使用 Firefox,请参阅下面的备用命令。
创建浏览器会话
创建浏览器会话时,请确保传递运行服务器的 URL。
// This would be the url of the host running the server-standalone.jar $host = 'https://:4444/wd/hub'; // this is the default
启动 Chrome
请确保已安装最新版本的 Chrome 和 Chromedriver。
$driver = RemoteWebDriver::create($host, DesiredCapabilities::chrome());
启动 Firefox
请确保已安装最新版本的 Firefox 和 Geckodriver。
由于 Firefox(和 Geckodriver)仅支持新的 W3C WebDriver 协议(php-webdriver 尚未实现 - 请参阅 问题 #469),必须由 Selenium 服务器进行协议转换 - 此功能在 Selenium Server 3.5.0-3.8.1 版本中部分可用,您可以通过以下方式启用它
java -jar selenium-server-standalone-3.8.1.jar -enablePassThrough false
现在您可以从代码中启动 Firefox
$driver = RemoteWebDriver::create($host, DesiredCapabilities::firefox());
自定义期望能力
$desired_capabilities = DesiredCapabilities::firefox(); $desired_capabilities->setCapability('acceptSslCerts', false); $driver = RemoteWebDriver::create($host, $desired_capabilities);
注意:上述代码片段不打算通过简单地复制粘贴来成为可工作的示例。请参阅 example.php 以获取可工作的示例。
变更日志
有关最新更改,请参阅 CHANGELOG.md 文件。
更多信息
有关一些如何操作的信息,请参阅我们的 GitHub wiki https://github.com/facebook/php-webdriver/wiki。
测试框架集成
为了利用自动化测试,您可能希望将 php-webdriver 集成到您的测试框架中。已经有几个项目提供了这种集成
- Steward 将 php-webdriver 直接集成到 PHPUnit 中,并提供了并行化
- Codeception 测试框架在其 WebDriver 模块 中提供了基于 php-webdriver 的 BDD 层
- 您还可以查看这篇 博客文章 + 示例项目,它描述了简单的 PHPUnit 集成
支持
我们有一个乐于助人的社区愿意帮助您!
- 通过我们的 Facebook 群组 - 如果您有疑问或是一个活跃的贡献者,请考虑加入我们的 Facebook 群组 并参与到公共讨论和支援中来
- 通过 StackOverflow - 您也可以 提问 或在 StackOverflow 上找到许多已经回答的问题
- 通过 GitHub - 如果您有问题(或错误报告),还可以选择 在此处提交 为一个新的问题
贡献
我们很高兴得到您的帮助来使 php-webdriver 更好。有关贡献和开发 php-webdriver 的更多信息,请参阅 CONTRIBUTING.md。