fonsecas72/selenium-handler

获取、启动和停止 selenium 服务器

0.4.1 2016-12-02 16:22 UTC

README

使用 PHP >= 5.4 作为客户端或通过命令行下载、启动和停止 Selenium 服务器。

Build Status Scrutinizer Code Quality Dependency Status

Latest Stable Version Total Downloads Daily Downloads Latest Unstable Version License

此包的编写旨在避免手动下载 Selenium,并避免那些复杂的启动 Selenium 的命令。它还允许你在自己的包中使用它。

安装

使用 Composer

  composer require --dev fonsecas72/selenium-handler

使用方法

在你的应用程序中

你可以创建一个下载器、启动器、停止器和一个监视器。例如,要创建一个启动器

$seleniumStarterOptions = new SeleniumStartOptions();
$process = new Process('');
$exeFinder = new ExecutableFinder();
$waiter = new ResponseWaitter(new Client());
$starter = new SeleniumStarter($seleniumStarterOptions, $process, $waiter, $exeFinder);

然后你可以调用

$starter->start();

并且它将正常工作。

当然,你也可以更改默认设置。这是通过调用每个选项类来完成的。例如,要更改启动器的设置

// timeout is changed in the "waitter" class:
$starter->getResponseWaitter()->setTimeout($input->getOption('timeout'));
// to set a specific selenium location you do:
$starterOptions = $starter->getStartOptions();
$starterOptions->setSeleniumJarLocation($input->getOption('selenium-location'));
// to enable xvfb:
$starterOptions->enabledXvfb();

你还可以创建一个 "handler",它将允许你通过单个类启动、停止、下载等。

$this->handler = new SeleniumHandler($starter, $stopper, $downloader, $logWatcher);

查看测试和内置命令获取更多示例,或打开一个问题

内置命令

获取 selenium

(默认情况下将下载到当前目录)

bin/selenium get

你可以使用以下命令设置目标目录

bin/selenium get -d someDir/

你可以使用以下命令设置 selenium 版本

bin/selenium get -s 2.44

启动 selenium

bin/selenium start

你可以提供 selenium 的位置

bin/selenium start --selenium-location /someDir/selenium-server-standalone.jar

可选地,你可以选择是否使用 xvfb

bin/selenium start --xvfb

你还可以抛出 selenium 选项。例如:你可以设置使用 firefox 配置文件

bin/selenium start --selextra firefox-profile=/someDir/toFirefoxProfile

你还可以设置你愿意等待 selenium 启动的时间(以秒为单位)

bin/selenium start --timeout 60

停止 selenium

bin/selenium stop
技巧与窍门

你还可以使用 follow 选项在启动后跟踪 selenium 日志

bin/selenium start --follow

你甚至可以跟踪特定的日志级别

bin/selenium start --follow ERROR

这在你启动 selenium 在运行测试之前非常有用。

bin/selenium start --follow ERROR &

然后如果发生某些错误,你将在测试日志/输出中看到它。