2016-04-05 8 views
1

どのようにして現在のブラウザ名を使用できますか?私はChromeとFirefoxを使用しています。私の機能テストでは機能 - > chrome、features - > firefoxの順です。私はスクリーンショットを生成することができるテストが失敗したときにスクリーンショットを撮りたい、それはちょうど私のルートディレクトリに保存する。私はファイルを適切なブラウザの下に保存します。 Behat + mink + Selenium2現在のブラウザ名を取得

print_r($this->getSession()->getDriver())

をやったとき、私はそれがbrowserNameのプライベート変数を持っていることを得るが、私はそれをどのようにアクセスできますか?

し、この情報を取得するためにユーザーエージェント文字列を解析し、

[browserName:Behat\Mink\Driver\Selenium2Driver:private] => chrome [desiredCapabilities:Behat\Mink\Driver\Selenium2Driver:private] => Array ( [browserName] => chrome [browser] => chrome [version] => 25 [platform] => ANY

答えて

1

これは私のために働いたものです。

$session = $this->getSession(); 
$driver = $session->getDriver(); 
$userAgent = $driver->evaluateScript('return navigator.userAgent'); 
$provider = $driver->evaluateScript('return navigator.vendor'); 
$browser = null; 
if (preg_match('/google/i', $provider)) { 
    //using chrome 
    $browser = 'chrome'; 
} elseif (preg_match('/firefox/i',$userAgent)) { 
    $browser = 'firefox'; 
} 
0

あなたが driver.executeScriptを( "navigator.userAgentを返す")を実行しようとしたことがありますか? これは、ブラウザ名、バージョン、OS情報などを取得するのに役立ちます。

+0

私はexecuteScriptの代わりにevaluateScriptを使用しなければなりませんでした。executeはデータを返しませんが、evaluateは実行します。 –

関連する問題