0

Web プログラムをテストするときに、xvfb を使用してディスプレイをセレンに指定するソリューションを入手しました。環境: CentOS6、Selenium2、robotframework、Firefox。私の手順は次のとおりです。

   startup vncserver specified displaynumber. vncserver :6
   set DISPLAY with same number. DISPLAY=:6
   test my project.
   kill vncserver. vncserver -kill :6

また、Firefox は正常に起動できます。これで、Firefox を起動する方法はわかりましたが、その理由はわかりません。selenium2、vncserver、xvfb、robotframework の関係は? 要するに、selenium2またはrobotframeworkがvncserverまたはxvfbからxserverをどのように使用するかを知りたいです。http://docs.seleniumhq.org/docs/https://github.com/rtomac/robotframework-selenium2libraryで答えが見つかりませんでした。誰もそれを知っていますか?参照はありますか?どうも

4

1 に答える 1

2

私は専門家ではありませんが、私がどのように理解しているかを説明しようとします。

デフォルトでは、Centos にはディスプレイが構成されていません。
これは、グラフィカル インターフェイスを持つアプリケーションを起動できないことを意味します。
したがって、Firefox を起動しません。

xvfb と vncserver を使用すると、このような表示をセットアップできます。xvfb はインメモリ表示を作成します。

次に、「set DISPLAY」は、使用するディスプレイをOSに通知します。起動した xvfb に設定すると、centos でグラフィカル アプリを起動できますが、メモリ内にあるため表示されません。

次に、ロボット/セレンの部分については、彼らはそのすべてを認識していません。
Robot Framework テストは、コマンド ラインから起動するのと同じように Firefox を起動する Selenium ライブラリを呼び出すため、xvfb ディスプレイで起動されます。

したがって、「セレンは変数 DISPLAY が既に設定されていることをどのように知っていましたか?」という質問に対して: セレンは知る必要はありません。彼はそれを現在の DISPLAY に送信し、それがあなたが構成したものになります。

これが理解に役立つことを願っています。

于 2013-09-18T12:50:40.773 に答える