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

    WinAppDriver UI Recorderを試してみました。

    下記記事にある通り、「WinAppDriver UI Recorder…

  2. Windows 10

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

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

  3. PowerShell

    ChromeDriverでBraveを操作するPowerShellスクリプト

    広告をブロックすることによって素早くページを読み込めるというブラウザー…

  4. Windows 10

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

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

  5. Office関連

    Microsoft Edgeを操作するVBAマクロ(WebDriver編)

    Microsoft Edge Dev Blogに「Bringing a…

  6. Office関連

    ヘッドレス ChromeをSeleniumBasicで動かしてみました。

    Chromeがヘッドレスモードに対応した頃、Seleniumで操作した…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP