1

PleseHelpmeセレングリッドでSafariをインスタンス化するにはどうすればよいですか

    capabilities = new DesiredCapabilities();
            // Version browser
            capabilities.setVersion(versaoBrowser);
            capabilities.setBrowserName("safari");
            capabilities.setJavascriptEnabled(true);
            // Platform test runner
            capabilities.setPlatform(platform);

サーバー上にはweelがあります

-browser "browserName=safari,version=5,platform=WINDOWS,javascriptEnable=true"
4

2 に答える 2

1

Grid2 で SafariDriver を使用して Safari を新しい方法で使用することについて質問がある場合、これは私が信じている典型的な方法です (多かれ少なかれ):

import org.openqa.selenium.*;
import org.openqa.selenium.remote.*;
import java.net.*;

DesiredCapabilities c = new DesiredCapabilities();
c.setBrowserName("safari");
/* you can then set version & platform as well, but the minimum is just browser. Maybe for Grid2 you need the others, but for remote web driver only, you don't.
*/

WebDriver d = new RemoteWebDriver(new URL("http://hubIpOrHostname:hubPort/wd/hub"),c);

そしてそれはうまくいくはずです。サーバー側では、wikiドキュメントに従ってGrid2のインスタンスを正常に作成するだけだと思います(最後に確認したところ、現在は差分になっている可能性があります):

//ハブ java -jar selenium-server-standalone-2.21.0.jar -role ハブ -ポート theHubPort を開始します

// ノードを開始します java -jar selenium-server-standalone-2.21.0.jar -role node -hub http: //172.22.6.198:4446/wd/hub -port theNodePort

ただし、現在の Grid2 は Safari をサポートしていないようです。ハブに登録されているノードのコンソールを調べたところ、Safari のアイコンが表示されませんでした。多分私は何かを逃した。次回はプラットフォームとバージョンを追加して、それが違いを生むかどうかを確認しますが、そうではないと思います.

SafariDriver を使用した Grid2 で発生したエラーのスニペットを次に示します。

2012 年 5 月 11 日 6:01:11 PM org.openqa.selenium.remote.RemoteWebDriver execute INFO: Executing: [null, newSession {"desiredCapabilities":"Capabilities [{browserName=safari}]"}] // エラー: // キャッチされない例外: 型付き変数の宣言 : オブジェクト コンストラクター : 行: 7 : ファイル内: : new RemoteWebDriver ( new URL ( "http: //172.22.6.198:4446/wd/hub" ) , c )

ターゲット例外: org.openqa.selenium.WebDriverException: 新しいセッションの転送中にエラーが見つかりません: {browserName=safari} コマンドの実行時間またはタイムアウト: 109 ミリ秒

注: webdriver では、同じコードを (スタンドアロン) リモート webdriver 実行とグリッドに使用できます。相違点は、リモートではリモート サーバー IP を使用し、grid2 ではハブ IP を使用することです。SafariDriver はリモート Web ドライバーで動作しますが、現在 Grid2 ではまだ動作していないようです。

リモート Web ドライバーの起動:

java -jar selenum-server-standalone-2.21.0.jar [-port somePort] //デフォルトのポート 4444

于 2012-05-12T03:44:41.827 に答える
0

あなたが求めているのはこのようなものだと思いますか?

selenium = new DefaultSelenium("localhost", 4444, *safari,"http://google.com.au");
selenium.start();

私は通常 WebDriver を使用しますが、私の理解では、機能はブラウザーのインスタンスを作成するときのオプションであり、ブラウザー自体を開くためのものではありません。私は Selenium Grid の経験がないので間違っているかもしれませんが。

編集:これこれが役立つかもしれません。

于 2012-04-26T03:26:11.783 に答える