本記事では、SeleniumBasicの操作(基礎編)第7回として、ウィンドウズの起動条件設定の解説をします。WebDriverクラス直下のAddArgumentメソッドを利用すれば、Chromeブラウザの起動オプションを利用することができます。いくつか使えそうな起動オプションをピックアップして紹介します。
ブラウザの起動 |
Web操作 |
ブラウザを閉じる |
ウィンドウ起動条件 |
Chrome環境設定 |
プロファイルの選択 |
拡張機能の付与 |
リモートデバッグ設定 |
Basic認証設定 |
バックグラウンドで起動 |
シークレットモード起動 |
画面最大化で起動 |
ダウンロードフォルダ設定 |
ダウンロードダイアログボックスの非表示 |
PDFファイルのダウンロード設定 |
起動オプションについては以下のサイトを参考にさせていただきました。
起動オプションをSeleniumBasicで設定する場合は、以下の構文をDriver.Getの前に実行します。
Driver.AddArgument "<起動オプション>"
バックグラウンドでブラウザ起動
ブラウザをヘッドレスモードで起動させます。バックグラウンドでSeleniumを起動させたい時に便利です。
Private Sub Set_HeadlessMode()
Dim Driver As New ChromeDriver
Driver.AddArgument "--headless"
Driver.Get "https://programan.org"
Debug.Print Driver.FindElementByPartialLinkText("Programan").Text
Driver.Wait 1500
Driver.Quit
End Sub
シークレットモードでブラウザ起動
ブラウザをシークレットモードで起動させます。操作履歴を残したくない場合に利用します。SeleniumBasicでは毎回一時的にプロファイルを作成していますので、あえてシークレットモードで起動しなくても良いかもしれません。
Private Sub Set_SecretMode()
Dim Driver As New ChromeDriver
Driver.AddArgument "--incognito"
Driver.Get "https://programan.org"
Driver.Wait 1500
Driver.Quit
End Sub
画面最大化でブラウザ起動
起動オプションで事前にブラウザ画面を最大化する様に設定します。SeleniumBasicのWindowクラスでもサイズ最大化できます。
Private Sub Set_WindowMaxiSize()
Dim Driver As New ChromeDriver
Driver.AddArgument "--start-maximized"
Driver.Get "https://programan.org"
Driver.Wait 1500
Driver.Quit
End Sub
フルスクリーンモードでブラウザ起動
フルスクリーンサイズでブラウザを起動させます。
Private Sub Set_WindowFullSize()
Dim Driver As New ChromeDriver
Driver.AddArgument "--start-fullscreen"
Driver.Get "https://programan.org"
Driver.Wait 1500
Driver.Quit
End Sub
画面サイズを指定してブラウザ起動
起動オプションで事前にブラウザ画面を指定します。SeleniumBasicのWindowクラスでもサイズ指定できます。
Private Sub Set_WindowSize()
Dim Driver As New ChromeDriver
Driver.AddArgument "--window-size=400,600" '横幅,縦幅
Driver.Get "https://programan.org"
Driver.Wait 1500
Driver.Quit
End Sub
リモートデバッグモードでブラウザ起動
リモートデバッグモードでブラウザを起動させます。リモートデバッグモードの解説は別途browsers_debugで解説しています。Addrgumentメソッドでもリモートデバッグモードでブラウザを起動することができます。browsers_debugの解説内容と違い、こちらの方法では事前にリモートデバッグモードの起動が不要ですので、使い勝手が良いかと思います。
Private Sub SetRemoteDebug()
Dim Driver As New ChromeDriver
Driver.AddArgument "--remote-debugging-port=9222"
Driver.AddArgument "--user-data-dir=C:\Temp_Chrome"
'driver.AddArgument "--profile-directory=Profile 1"
Driver.AddArgument "--profile-directory=Default"
Driver.Get "https://programan.org"
Stop
Driver.Quit
End Sub
既存ブラウザに新ウィンドウを起動
既存で起動状態のブラウザに対し、新ウィンドウを起動するオプションです。複数ページを起動させたい場合は、ブラウザ指定時に半角スペースを挿入し、URLを指定します。詳しく以下使用例を参照ください。今回は、既存ブラウザを事前にリモートデバッグモードで立ち上げておきます。リモートデバッグモードの立ち上げ方法は、browsers_debugを参照ください。
Private Sub SetNewWindow()
'事前にリモートデバッグモードでブラウザを起動させておく
Dim Driver As New ChromeDriver, URL(1) As String
URL(0) = "https://programan.org"
URL(1) = "https://ja.wikipedia.org/wiki/メインページ"
Driver.AddArgument "--remote-debugging-port=9222"
Driver.AddArgument "--user-data-dir=C:\Temp_Chrome"
Driver.AddArgument "--new-window" & " " & URL(0) & " " & URL(1)
Driver.Start
Stop
Driver.Quit
End Sub
プロキシサーバの指定
プロキシサーバを指定し、ブラウザを起動させます。Driverクラスのオプションで起動させる訳ではないので、Capabilitiesクラス内のproxy項目では情報取得できません。
Private Sub Proxy_Addargument()
Dim Driver As New ChromeDriver
Const ProxyUrl As String = "<ホスト名>:<ポート番号>"
Driver.AddArgument "--proxy-server=" & ProxyUrl
Driver.Get "https://programan.org/"
Stop
Driver.Quit
End Sub
プロファイル指定でブラウザを起動
プロファイルを指定してブラウザを起動させます。指定対象のプロファイルでブラウザが起動中の場合、一度ブラウザを閉じていただく必要があります。プロファイル指定のブラウザ起動方法について詳しくは、browsers_profileを参照ください。
Private Sub SetProfile()
'事前に既存ブラウザを閉じておく
Dim Driver As New ChromeDriver
Driver.AddArgument "--disable-extensions"
'driver.AddArgument "--profile-directory=Profile 1"
Driver.AddArgument "--user-data-dir=C:\Users\shoji\AppData\Local\Google\Chrome\User Data"
Driver.AddArgument "--profile-directory=Default"
Driver.Get "https://programan.org/"
Stop
Driver.Quit
End Sub
ダミーユーザエージェントの利用
ダミーユーザエージェントを利用し、ブラウザを起動します。以下使用例では、Firefoxのユーザエージェント情報に設定し、ブラウザを起動させています。ユーザエージェント情報は、chrome://versionにて確認ができます。
Private Sub Set_DummyAgent()
'ユーザーエージェントをFirefoxに指定
Dim Driver As New ChromeDriver
Driver.AddArgument "--user-agent=" & "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0"
Driver.Get "https://google.co.jp"
Driver.Wait 2000
Driver.Get "chrome://version"
Stop
Driver.Quit
End Sub
言語選択
ブラウザの言語を起動オプションで指定できます。
Private Sub Set_Language()
Dim Driver As New ChromeDriver
Driver.AddArgument "--lang=en"
Driver.Get "https://programan.org/"
Stop
Driver.Quit
End Sub