18

Seleniumを使用していくつかのWebタスクを自動化したいと思います(テスト用ではありません)。Selenium RCサーバーがインストールされていると思いますが、PHPでクライアントドライバーが見つからないため、「テストスクリプト」を作成する方法がありません(http://seleniumhq.org/download/を参照)。

PHPでSeleniumを使用する方法はありますか?これは、PHPUnithttp://www.phpunit.de/manual/current/en/selenium.htmlが必要であることを示唆しているようです。テストの完全なスイートに関与するのではなく、いくつかのタスクを自動化したいだけです。

4

4 に答える 4

22

facebook / php-webdriverは、セレンとphpの素晴らしいクライアントです。

これを使用して(OPが望むように)Webタスクを自動化することも、php-webdriverをテストフレームワークに統合することもできます。すでにこれを提供しているいくつかのプロジェクトがあります:


すべてをインストールする

  1. facebook/php-webdriverをダウンロードしてインストールします。composer require facebook/webdriver

  2. Seleniumをダウンロードして開始します。java -jar selenium-server-standalone-#.jar

  3. Quick Javaをダウンロードして、プロジェクトディレクトリに配置します。


使用法

この例では、拡張機能を使用して、とquickjavaを除くすべてを無効にします。javascriptcookies

ここでより多くの設定を表示します:
https ://github.com/ThatOneGuyDotNet/QuickJava/blob/master/defaults/preferences/defaults.js

ここで他のサンプルコマンドを表示します:
https ://github.com/facebook/php-webdriver/wiki/Example-command-reference

use Facebook\WebDriver\Firefox\FirefoxProfile;
use Facebook\WebDriver\Firefox\FirefoxDriver;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;

// Change this to the path of you xpi
$extensionPath = $this->container->getParameter('kernel.root_dir').'/../bin/selenium/quickjava-2.0.6-fx.xpi';

// Build our firefox profile
$profile = new FirefoxProfile();
$profile->addExtension($extensionPath);
$profile->setPreference('thatoneguydotnet.QuickJava.curVersion', '2.0.6.1');
$profile->setPreference('thatoneguydotnet.QuickJava.startupStatus.Images', 2);
$profile->setPreference('thatoneguydotnet.QuickJava.startupStatus.AnimatedImage', 2);
$profile->setPreference('thatoneguydotnet.QuickJava.startupStatus.CSS', 2);
//$profile->setPreference('thatoneguydotnet.QuickJava.startupStatus.Cookies', 2);
$profile->setPreference('thatoneguydotnet.QuickJava.startupStatus.Flash', 2);
$profile->setPreference('thatoneguydotnet.QuickJava.startupStatus.Java', 2);
//$profile->setPreference('thatoneguydotnet.QuickJava.startupStatus.JavaScript', 2);
$profile->setPreference("thatoneguydotnet.QuickJava.startupStatus.Silverlight", 2);

// Create DC + Driver
$dc = DesiredCapabilities::firefox();
$dc->setCapability(FirefoxDriver::PROFILE, $profile);

$driver = RemoteWebDriver::create($host, $dc);
$driver->get('http://stackoverflow.com');

// Do stuff - https://github.com/facebook/php-webdriver/wiki/Example-command-reference
//$driver->findElement(WebDriverBy::id("element-id"));

// The HTML Source code
$html = $driver->getPageSource();

// Firefox should be open and you can see no images or css was loaded
于 2015-11-11T21:09:33.463 に答える
19

以下のことを試してください

  1. Phpunitをインストールして機能させる
  2. また、PCにJAVA sdk&jreをインストールします。
  3. 次に、SeleniumIDEを使用してテストケースを記録します。
  4. テストケースをphpファイルにエクスポートします。
  5. これらのエクスポートされた関数を使用して、テストケースのライブラリを作成します。
  6. ライブラリから関数/テストを呼び出すスイートを作成します。
  7. 次に、javaコマンドを使用してStartSeleniumServerを実行します。
  8. phpunitの使用スイートを実行します。

これらのファイルの書き方については、ここをクリックして、GitHubを試してみてください。

于 2011-07-07T18:58:48.437 に答える
1

セレンサーバーを実行し、それと対話するにはWebドライバーライブラリが必要です。

公式には、seleniumはPHPをサポートしていませんが、Nearsoftで、JsonWireProtocolと対話するためのライブラリを作成しました。公式サイトの他の言語やドライバーの例とできるだけ類似させることを目的としたため、Javaのページの例はphpの構文と非常によく似ています。

それをチェックしてください:https ://github.com/Nearsoft/PHP-SeleniumClient

あなたがそれを好きなら、それを共有し、参加し、それをフォークするか、あなたが好きなようにしてください。

よろしく、マーク。

于 2012-05-31T18:58:43.430 に答える
1

その男は主にIDEで生成されたファイルの使い方を尋ねたと思います。

PHP用のフォーマッターがあります。次に、PHPunitとしてエクスポートする必要があります。

Selenium IDE:PHPフォーマッター::Firefox用アドオン https://addons.mozilla.org/en-US/firefox/addon/selenium-ide-php-formatters/

于 2016-08-29T16:02:57.640 に答える