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

    PowerShellでMicrosoft Edgeを操作する

    前回の記事でWebDriverを使ってMicrosoft Edgeを操…

  2. Office関連

    IEサポート終了でVBAマクロはどうなるの?

    ※下記情報は2021年5月時点の情報で、今後状況が変わっていく可能性が…

  3. PowerShell

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

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

  4. Excel

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

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

  5. Selenium

    C#からWinium WebDriverを使ってみた。

    「Winium - Windows向けソフトウェアでもSelenium…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

Translate

Chinese (Simplified)Chinese (Traditional)EnglishFrenchGermanJapaneseKoreanRussianSpanish

最近の記事

アーカイブ

PAGE TOP