私は現在Selenium Serverを見ていますが、ヘッドレスブラウザーテストをサポートするドライバーに気付いていないようです。
誤解しない限り、サポートしていません。 Xを使用している場合、仮想フレームバッファーを作成してブラウザーウィンドウを非表示にできますが、それは実際にはヘッドレスブラウザーではありません。
誰でも私を啓発できますか? Seleniumはヘッドレスブラウザテストをサポートしていますか?
seleniumの代わりにPhantomJSを使用する必要はありません。 Seleniumには、GhostDriverプラットフォームに対応するPhantomJS Webdriverクラスが含まれています。 PhantomJSバイナリをマシンにインストールするだけです。 Pythonでは、次を使用できます。
from Selenium import webdriver
dr = webdriver.PhantomJS()
そして出来上がり。
WebDriver APIは、テスト用のブラウザーとしてHTMLUnitをサポートしています。 Ruby人々は彼らの頭のないセレンのテストのためにカピバラをしばらく使用しているので、それは間違いなく実行可能です。
私はこれが古い投稿であることを知っています。それは答えを探している他の人を助けるだろうと思った。
XVFBを使用して、すべてのLinuxディストリビューションに本格的なFirefoxをインストールできます。これにより、実際のブラウザでテストが実行されます。ヘッドレスセットアップが完了したら、任意のwebdriverを使用して接続し、テストを実行できます。
Xフレームバッファーを使用することは真のヘッドレスソリューションではないということにお気づきだと思いますが、ほとんどの場合、それは受け入れられると思います。それに加えて、 このサービス は、ソリューションとしてそれに興味がある場合に、それを実現するのに役立ちます。
ヘッドレスブラウザは悪い考えです。 someテストを取得しますが、実際のユーザーに表示されるものとは異なり、realブラウザーのみが遭遇する多くの問題を隠します。ヘッドレス環境(eg)で「headed」ブラウザ(ie、HTMLUnit以外のもの)を使用する方が無限に優れていますWindows、またはXVFBを搭載したLinux)。
はい。 Seleniumは、ヘッドレスブラウザーテストをサポートし、より高速であり、大量のテストケースの実行に便利です。
ChromeOptions cromeOptions = new ChromeOptions();
//Location of browser binary/.exe file
cromeOptions.setBinary("/usr/bin/google-chrome-stable");
cromeOptions.addArguments("--headless");
cromeOptions.addArguments("--no-sandbox");
cromeOptions.addArguments("--disable-gpu");
cromeOptions.addArguments("--window-size=1920,1080");
WebDriver webDriver = new ChromeDriver(cromeOptions);
Seleniumは、ある意味でヘッドレスブラウザーテストをサポートしています。 Docker Selenium はSeleniumHQによって管理されています。これらのdockerコンテナーには、すぐに使用できるxvfbサポートが付属しています。 Seleniumと接続できるPhantomJSのようなツールがあります。ただし、Selenium自体によって公式にサポートされているわけではありません。
他の人が説明したように、PhantomJSはお勧めしません。 Seleniumの重要なポイントは、ブラウザーを自動化することです。しかし、なぜ誰も使用していないブラウザーを自動化するのでしょうか?それが開発者によって頻繁に見落とされていることを理解していませんでした。
はい、Seleniumはヘッドレスブラウザテストをサポートしています。ヘッドレスブラウザはリアルタイムブラウザよりも高速です。
はい、Seleniumはヘッドレスブラウザテストをサポートしています...しかし、HTMLUnitがほとんど失敗していることがわかりました...私は代替を探していました... PhantomJsは本当に良かったです。 ...煙のテストに本当に良い...
RubyおよびmacOS:brew install phantomjs
その後:
driver = Selenium::WebDriver.for :phantomjs
Django/Pythonを実行しているUbuntu Linux環境でxvfbおよびFirefoxドライバーでSeleniumを使用する方法に関する「最新の回答」を次に示します。
# install xvfb and Firefox driver
Sudo su
apt-get install -y xvfb firefox
wget https://github.com/mozilla/geckodriver/releases/download/v0.19.1/geckodriver-v0.19.1-linux64.tar.gz
tar -x geckodriver -zf geckodriver-v0.19.1-linux64.tar.gz -O >
/usr/bin/geckodriver
chmod +x /usr/bin/geckodriver
# install pip modules
pip install Selenium
pip install PyVirtualDisplay
その後、 Django LiveServerTestCaseの指示 に従うことができます。
インストールしたばかりのドライバーを使用するには、次のようにします。
from pyvirtualdisplay import Display
from Selenium.webdriver.firefox.webdriver import WebDriver
driver = WebDriver(executable_path='/usr/bin/geckodriver')
display = Display(visible=0, size=(800, 600)).start()
# add your testing classes here...
driver.quit()
display.stop()
chromeDriver
およびgoogle-chrome-stable
Linuxサーバー上のバージョン。テストがトリガーされ、コードに同じバイナリが追加されます。
コードスニペット:
private static String driverPath = "/usr/bin/chromedriver";
static
{
System.setProperty("webdriver.chrome.driver", driverPath);
options = new ChromeOptions();
options.setBinary("/usr/bin/google-chrome-stable");
options.addArguments("headless");
driver = new ChromeDriver(options);
}