Selenium RCでブラウザーを非表示にすることはできますか?


92

一部のブラウザー操作を自動化するためにSelenium RCを使用していますが、ブラウザーを非表示にしたいです。これは可能ですか?どうやって?セレングリッドについてはどうですか?Selenium RCウィンドウも非表示にできますか?


許容できないかもしれませんが、(通常のWindows UIオートメーションを使用して)ブラウザを(-10000、-10000)に配置するなどのように、ブラウザを画面から移動できませんでしたか?
BrainSlugs83 2014年

2
この質問は古いので、このページの下部にある適切な最新の回答にリダイレクトします。
ステファンBruckert

回答:


87

いくつかのオプションがあります:

  • Selenium Gridを使用して、完全に異なるマシン(または仮想マシン)でブラウザーを開き、ブラウザーを表示したい場合はVNCまたはリモートデスクトップ接続を介して接続できます。また、別のオプション:リモートサーバーでJenkinsフォアグラウンドプロセスを実行すると、デスクトップでテストプロジェクトを実行できます。

  • LinuxではXVFBでSeleniumを「ヘッドレス」で実行できます。私はこれをやろうとしたことがなく、努力する価値があるとは思いません。http://www.alittlemadness.com/2008/03/05/running-selenium-headless/

  • Selenium RCをWindowsサービスでラップできます。http://support.microsoft.com/kb/137890。それより後のバージョンのウィンドウのアクセス許可の制約により、Seleniumは、Windows 2000のようにデスクトップにアクセスできなくなります。

  • 別のオプションは、「実際の」ブラウザを起動しないWebDriver HTMLUnitDriverのようなものを使用することです。http://code.google.com/p/webdriver/ 。また、PhantomJSオプションと、使用できる「ヘッドレスChrome」もあります。

  • もちろん、クラウドでテストを実行できるSauceLabsなどのサービスを使用するオプションもあります。テストが完了したら、実行中のビデオを見ることができます。


サービスをインストールするbatファイルを作成する手順は次のとおり
Brantley Blanchard

58

Linuxでは、ヘッドレス(仮想)ディスプレイでWebDriverを実行して、ブラウザーを非表示にすることができます。これはXvfb(X仮想フレームバッファー)で実行できます。

次を使用して、PythonコードからXvfbを直接制御できますxvfbwrapperhttps : //github.com/cgoldberg/xvfbwrapper

ヘッドレスで実行するためのPythonコードは次のようになります。

from selenium import webdriver
from xvfbwrapper import Xvfb

display = Xvfb()
display.start()

# now Firefox will run in a virtual display. 
# you will not see the browser.
driver = webdriver.Firefox()
driver.get('http://www.google.com')

print(driver.title)
driver.quit()

display.stop()

Debian / Ubuntuに依存関係をインストールします。

$ sudo apt-get install xvfb
$ pip install xvfbwrapper

コードが仮想ブラウザーで実行される場合、ブラウザーの対話スクリプトの実行中にPCを通常どおり使用できますか?
2016

リソースが使用され、マシンが遅くなります!
Tim Long

22

ブラウザウィンドウを簡単に非表示にできました。

ただ、PhantomJSをインストールします。次に、次の行を変更します。

driver = webdriver.Firefox()

に:

driver = webdriver.PhantomJS()

コードの残りの部分を変更する必要はなく、ブラウザーは開きません。デバッグの目的driver.save_screenshot('screen.png')で、コードのさまざまなステップで使用します。


5
これが機能するためには、PhantomJs.exeのパスを配置する必要があることに言及する価値があります。例driver = webdriver.PhantomJS(r"C:\\phantomjs\phantomjs.exe")
K DawG

1
はい、ただしWindowsでのみ。
ステファンBruckert

1
環境の$ PATH環境変数から見つけることができる限り、バイナリの場所を指定する必要はありません。
Corey Goldberg、

13

WindowsサービスとしてのSelenium RCの+1。

テストを完全に非表示で実行する場合、Windowsを使用している場合、解決策は多くないと思います。

LAN内のコンピューターを常時オンラインにして、Selenium RCサーバーを実行するために私が行うことは何ですか。したがって、テストを実行するには、localhostではなくそのコンピューターのIPを使用します。例えば:

browser = selenium("10.15.12.34",4444,"*firefox","http://saucelabs.com")

(それがサーバーを実行しているコンピューターのIPであることを考慮してください)。

そのセットアップが完了したら、コンピューターでテストを実行します。ブラウザーとRCサーバーウィンドウは別のコンピューターにあり、完了したら元のコンピューターに戻ります。


12

Linuxでは、仮想ディスプレイ上でテストブラウザーを実行できます。xvfb仮想Xサーバーを作成するためのパッケージが必要です。Debianベースのディストリビューションでは、単に実行します

sudo apt-get install xvfb

ephemeral-x.sh仮想ディスプレイで実行するコマンドを簡単に設定できる便利なツールがあります。それダウンロードして実行可能にします。

wget https://raw.github.com/jordansissel/xdotool/master/t/ephemeral-x.sh
chmod +x ephemeral-x.sh

次に、それを使用してSeleniumサーバーを起動します。

./ephemeral-x.sh java -jar selenium-standalone.jar

Seleniumによって作成されたすべてのブラウザーウィンドウは仮想ディスプレイを使用し、ユーザーからは見えなくなります。


このスクリプトには引用の問題があります。./ephemeral-x.sh foo '*'と言った場合、「Running:foo」の後にディレクトリの内容が続きます。
Nick Retallack

4

Windowsを使用している場合、1つのオプションは、別のユーザーアカウントでテスト実行することです。これは、ブラウザとJavaサーバーが自分のアカウントから見えないことを意味します。


3

これは、Linuxデスクトップ(Ubuntu)でMavenを使用してテストを実行する方法です。いつもフォーカスしているFirefoxのWebドライバーで作業できないことにうんざりしました。

xvfbをインストールしました

xvfb-run -a mvn clean install

それでおしまい


これは、xvfbが確実に実行され、Selenium / WebDriverによって使用されることを保証する最も簡単な方法です。
Samuli Pahaoja 2014

1

多くの場合、PhantomJSはお客様のニーズに完全には適合しません。DaveHuntの回答で言及されているヘッドレスクロムオプションについて詳しく説明したいと思います。

Chrome 57がこの機能をリリースしました。ChromeDriver経由で--headlessフラグを渡すことで使用できます。詳細については、この質問の説明を参照してください


0

呼ばれるPhantomJS関連のプロジェクトがありGhostDriver webdriverをワイヤーJSONプロトコルを使用してセレングリッド内PhantomJSのインスタンスを実行するためのものです。それはおそらくあなたが探しているものですが、この質問は現在4歳です。


0

MacOSXでは、ブラウザウィンドウを非表示にすることができませんでしたが、少なくとも、ワークフローをそれほど妨げないように、別のディスプレイに移動する方法を見つけました。Firefoxがテストを実行している間に、ドックのアイコンをコントロールクリックし、[オプション]を選択し、[ディスプレイに割り当て] 2をクリックします。


0
curl -k https://gist.githubusercontent.com/terrancesnyder/995250/raw/cdd1f52353bb614a5a016c2e8e77a2afb718f3c3/ephemeral-x.sh -o ~/ephemeral-x.sh
chmod +x ~/ephemeral-x.sh
~/ephemeral-x.sh TestsStarterCommand

ちなみに、これはe2eを実行しているすべての開発者が論理的にブラウザーを起動するために必要な機能です。開発環境では、ポップアップし続け、誤って操作してテストを失敗させる可能性があるウィンドウを処理するのは面倒です。


0

ヘッドレスChromeを使用することをお勧めします。または、サイトに直接投稿して操作することもできます。これにより、他のものやプロセスの計算能力が大幅に節約されます。CPUの重い要素を使用して複数のサイトで靴を検索するWebオートメーションボットをテストするときにこれを使用します。より多くの電力を節約し、プログラムが単純になるほど、複数のプロセスを同時に実行するのが簡単になり、速度が速くなり、信頼性。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.