Selenium

ヘッドレス ChromeをSeleniumから動かしてみました。

久しぶりにSeleniumのサイトを見てみたら、バージョン3.5.0がちょうど出ていました。
折角なのでGoogle Chrome 59で搭載されたヘッドレスモードを試してみたいと思います。

環境

  1. Windows 10 Enterprise x64
  2. Google Chrome 60.0.3112.90 x64
  3. ChromeDriver 2.31
  4. Selenium WebDriver 3.5.0

コード

ヘッドレス Chromeについては「ヘッドレス Chrome ことはじめ」に詳しく書いてありました。

とりあえず、起動時にオプションとして「–headless」と「–disable-gpu」(そのうち要らなくなる予定)を付ければ、ヘッドレスモードでChromeを立ち上げられるようです。

using System;
using System.Drawing.Imaging;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;

namespace HeadlessChromeTest
{
  class Program
  {
    public static void Main(string[] args)
    {
      ChromeOptions options = new ChromeOptions();
      options.AddArguments(new string[] {"--headless", "--disable-gpu"}); //--headless,--disable-gpu(暫定的に必要) フラグ付加
      ChromeDriver driver = new ChromeDriver(@"C:\System\WebDriver", options);
      driver.Navigate().GoToUrl("https://www.yahoo.co.jp/");
      driver.GetScreenshot().SaveAsFile(@"C:\Screenshot\Yahoo.png", ImageFormat.Png);
      driver.Quit();
      Console.Write("Press any key to continue . . . ");
      Console.ReadKey(true);
    }
  }
}

Yahoo!を開いてスクリーンショットを撮るだけの簡単なコードですが、意図した通りに動作しました。

そして、これまで私はヘッドレスブラウザの方が動作が早いのかと思っていたのですが、この記事を読む限り、そうではないようです。

ヘッドレスブラウザが登場した時はどう思いましたか?また,皆さんは使っていますか?

こういった質問に対しては,いつも逆に,なぜヘッドレスブラウザを使うのかを聞きたいですね。速いからだという人もいますが,実際のところ速くはありません。また,自分がユーザとしてそのWebサイトにアクセスするのに,ヘッドレスブラウザを使いますか? 使わないでしょう。

ただ,FirefoxやChromeのヘッドレスモードで,通常のブラウザと同じ振る舞いであれば使える場面もあるかもしれませんが,あまり意味はないと思います。ブラウザレベルでテスト自動化をするのは,実際にブラウザを通して表示することでそのWebサイトが安全であるかを確かめられるからであり,また,その画面を自分の目で見ることができるからです。

http://gihyo.jp/news/report/2017/07/2601?page=3 より

なるほど。
たしかに、目で見えていないとブラウザがおかしな状態になったときに気が付きにくいデメリットもあるし、無理してヘッドレスで動かす必要無いわけか。

「えっ?じゃあ、今回何のためにわざわざヘッドレスのChromeを操作したんだ・・・!?」と思ったのが今日のオチ。
(私は語れるほど詳しくないですが、きっとヘッドレスの良いところもあるはず!)

【オトカドール】ライバルカード第4弾カード一覧前のページ

[Officeアドイン]テーブルやグラフを作成する方法(Excel)次のページ

関連記事

  1. Windows 10

    Selenium WebDriverでChromium版Edgeを操作してみました。

    先日書いた下記記事の通り、Chromium版Microsoft Edg…

  2. Windows 10

    [Selenium]ExecuteScriptで指定した要素のIDを取得する。

    MSDN フォーラムにあった質問「Edge向けWebDriverでDO…

  3. Office関連

    ヘッドレス ChromeとSeleniumBasicでWebページ全体のスクリーンショットを撮る方法…

    先日、ヘッドレス ChromeでWebページ全体のスクリーンショットを…

  4. Windows 10

    SeleniumBasic(Selenium VBA)がMicrosoft Edgeに対応しました。…

    言わずと知れたWebブラウザーの自動制御ツール「Selenium」のV…

  5. Windows 10

    Selenium(C#)でEdgeをいろいろ操作してみた。

    当ブログでも最近よく扱っているMicrosoft Edge、Selen…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

Translate

Chinese (Simplified)Chinese (Traditional)EnglishFrenchGermanJapaneseKoreanRussianSpanish

最近の記事

アーカイブ

PAGE TOP