2

私は実際にはPythonとセレンと混同しています。私はmacでセレンを使ってクロムとPhantomjsの両方を設定しましたが、うまくいきました。クロムヘッドレスパラレルインスタンスのためのセレンの最良の方法python

しかし、私はヘッドレスのようにphantomjsを走らせることができます。そして、実際に何が起こっているかを見ることができるように、物事を2回(ファントムとクロムのために)コード化しなければならなくなりました。特に、彼らは全く違った働きをしているからです。 - https://github.com/elgalu/docker-selenium

これは何が起こっているかを確認するためにVNCを使用して、ヘッドレス、FirefoxとChromeを可能に

ドッカーセレン:私は、これら2つのものがあります理解して何から

セレングリッド拡張 - https://github.com/zalando/zalenium

これは並列実行を可能にします。しかし、私はすでにunittestで並列実行ルーチンを書いているので、本当に必要なのでしょうか?私の理解は、セレングリッドdoesntのが本当にPythonのために働くということであるこれまでの研究から、

(そのJavaがベース)

誰もがそれは素晴らしいことだ使用するものにまっすぐ私を設定することができます。

私はクロームヘッドレスを使用するように思っているし、うまくいけば、私はまだあなたは、物事の束を混合しているunittestの中

答えて

1

私の並列実行を行うことができるでしょう、のは明確にしましょう:

  • PhantomJSは、WebKitレンダリングエンジン(正確にはChromeのようなものではありません)を使用するヘッドレスブラウザです。とUIを実行することはできません。
  • コードを2回書く必要はありません。設定ファイルからブラウザ名を取得し、インターフェイスwebdriverを使用して任意のブラウザを作成できます。
  • Chromeをヘッドレスで実行したい場合は、thisを試してください。ただし、AFAIKはベータステージで、Linuxのみです。
  • 並列実行は、複数の方法(ドッキング、グリッド、テストフレームワークなど)で実現できます。あなたのケースに応じて、あなたはあなたに合ったものを選ぶべきです。あなたの場合、私はドッカーとグリッドがオーバーヘッドだと思うので、unittestを続けてください:1. DockerはChromeを仮想ディスプレイで表示させますが、必要はありません。 2.セレニティグリッドは主にブラウザ、OSマトリックスに使用されます。 とは関係ありません。それはJavaベースなので、スタンドアロンサーバーあなたはどんな言語でもremotewebdriverを使用して接続します。

だから私はそれはあなたがまっすぐ

セット願っています;)

+0

は真剣に私にまっすぐに私の友人を設定しなかった - 本当にありがとうございました。何が起こっているのか(私がプロキシーや他のものを設定するとき)、使用されているドライバに関連する特定のコードが必要であること、特にエラーチェックが必要なためです。また、Firefoxはいくつかのバグを持っており、それがあるべきよう(クロムが行うのに対し)エラーを上げていないので、私は、このための回避策の束を作成する必要があります。それは私のために多くの時間を無駄にしているので、私はドッカー/グリッド/クロムヘッドレスで最初に試してみると、それがうまくいかない場合は、あなたのクロムの提案に行きます。 –

+1

NP!私はPythonでそれを行う方法はわかりませんが、あなたは実行時にインターフェイスを使って作業しているときに実行中のブラウザをチェックすることができます。C#では 'if(typeof(driver)== typeof(FirefoxDriver))そしてhandleSpecificError() 'を呼び出します。 – Moshisho

+1

これは本当にクールです、あなたは宝石です。これは私にそんなに長い時間を節約しています。あなたは素晴らしい一日を期待しています:) –

関連する問題