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. Windows 10

    Selenium WebDriverを使用してMicrosoft EdgeとOfficeを連携させる…

    この記事はSelenium/Appiumアドベントカレンダー2015の…

  3. Windows 10

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

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

  4. Windows 10

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

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

  5. Office関連

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

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

  6. Windows 10

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

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

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP