Excel

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

Chromeがヘッドレスモードに対応した頃、Seleniumで操作したことがあるのですが(下記記事参照)、SeleniumBasicからの操作も試してみることにします。

準備

下記記事でも書いていますが、SeleniumBasicに同梱されているWebDriverのバージョンは古いので、SeleniumBasicを使用する際は、操作対象となるブラウザーのバージョンに合ったファイル(chromedriver.exe)に差し替える必要があります。

ヘッドレス ChromeをSeleniumBasicで操作するVBAマクロ

以前書いた記事では、.Net用のSeleniumを使い「ChromeOptions」でヘッドレスモードを指定したのですが、SeleniumBasicではChromeOptionsが用意されていないようです。

どうすれば良いのか一瞬迷いましたが、「AddArgument」で普通にヘッドレス用のオプションを指定すれば良いようです。
(オプションの詳細については「ヘッドレス Chrome ことはじめ」参照)

Option Explicit

Public Sub Sample()
  Dim pdf As Object 'Selenium.PdfFile
  
  With CreateObject("Selenium.ChromeDriver")
    'オプションを付けてHeadless Chromeを立ち上げ
    'https://developers.google.com/web/updates/2017/04/headless-chrome?hl=ja 参考
    .AddArgument "--headless --disable-gpu"
    
    .Start
    .Get "https://www.yahoo.co.jp/"
    .FindElementById("srchtxt").SendKeys "あいうえお"
    .FindElementById("srchbtn").Click
    
    'PDFを作成してスクリーンショット貼り付け
    Set pdf = CreateObject("Selenium.PdfFile")
    pdf.SetPageSize 210, 297, "mm"
    pdf.SetMargins 5, 5, 5, 15, "mm"
    pdf.AddImage .TakeScreenshot, True
    pdf.SaveAs "C:\Test\Screenshot.pdf"
    
    .Quit
  End With
  MsgBox "処理が終了しました。", vbInformation + vbSystemModal
End Sub

上記コードは、Yahoo!で検索した結果のスクリーンショットを撮り、PDFファイルとして保存する処理を行いますが、同様の処理はchrome.exeのコマンドラインオプションでも行うことができます。

chrome.exe --headless --disable-gpu --print-to-pdf="C:\Test\Screenshot_CMD.pdf" https://search.yahoo.co.jp/search?p=%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A

関連記事

  1. Office関連

    文書が互換モードかどうかを判定するWordマクロ

    古いバージョンのWordで作成された文書を開くと、タイトル バーに「互…

  2. Office関連

    「あのコマンドどこだっけ? for Office 2013」の紹介

    Word MVPの新田さんのブログでも紹介していただいている自作フリー…

  3. Excel

    VBAから扱えるDLLをC#で書いてみる。

    以前書いた記事でSharpDevelopを使ってExcel用のCOMア…

  4. Excel

    「図のリセット」を実行するExcelマクロ

    Msdn フォーラムに「Excel2010-VBA 画像「図の書式設定…

  5. Excel

    Adobe Reader XIを利用してPDFファイルのページ数を取得するVBAマクロ

    先日Adobe Readerを利用してPDFファイルのページ数を取得す…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP