web-dev-qa-db-ja.com

PHPでSeleniumを使用する方法

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

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

15

事をフォローしてみてください

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

これらのファイルの書き込み方法を参照するには、 ここ をクリックし、git hubを試してください。

15
lAH2iV

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

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

  • Steward は、php-webdriverを PHPUnit に直接統合します。
  • Codeception テストフレームワークは、php-webdriverの上にBDDレイヤーを提供します。
  • この blogpost + demo project をチェックして、カスタム PHPUnit 統合について説明することもできます。

すべてをインストール

  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
17
Anil

対話するには、Seleniumサーバーを実行し、Webドライバーライブラリが必要です。

公式にはSeleniumはPHPをサポートしていませんが、NearsoftでJson Wire Protocolとやり取りするためのライブラリを作成しました。他の言語の例や、公式サイトなので、Javaのページの例は、phpでも非常に似た構文になります。

確認してください: https://github.com/Nearsoft/PHP-SeleniumClient

気に入ったら、共有して、参加して、フォークして、好きなようにしてください。

よろしく、マーク。

1
markdrake

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

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

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

0
Nadir

このリンクを確認してください: http://mvnrepository.com/artifact/org.seleniumhq.Selenium.client-drivers

Selenium-php-client-driverリンクをクリックしてバイナリを取得します

0
user766038