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関連

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

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

  3. Office関連

    VBAでブラウザーを操作するSeleniumWrapperVBAの紹介

    Internet Explorerのサポートが終わり、VBAマクロから…

  4. Windows 10

    Windows Application Driverを試してみました。

    Build 2016のセッション「UI Test Automation…

  5. PowerShell

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

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

  6. Windows 10

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

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

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP