概要
ブラウザを扱う基本クラスを解説します。事前にWebブラウザを指定せず、Startメソッドでブラウザを指定します。
オブジェクト設定
・変数宣言
Dim driver As New WebDriver
文法
driver.Start <ブラウザ名>,
driver.Get <URL>
driver.[メソッド]
メソッド・プロパティ
・メソッド(SearchContextからのクラス継承)
スクロールできます
Name | 解説 | Short Example |
---|---|---|
FindElement | 指定メソッドを使用して最初の Web要素 を検索、取得 | driver.FindElement(By.partiallinktext("Googleにつ")) |
FindElementBy | Byクラスを利用し、Web要素検索、取得 | Set elm = driver.FindElementBy(selenium.Strategy_Css, "#about > a:nth-child(3)") |
FindElementByClass | CSSクラスの値でWeb要素検索、取得 | driver.FindElementByClass("MV3Tnb").Click |
FindElementByCss | CSSセレクタの値でWeb要素検索、取得 | Set tbl = driver.FindElementByCss("#table1").AsTable |
FindElementById | Idの値でWeb要素検索、取得 | Set ele = Driver.FindElementById("searchInput") |
FindElementByLinkText | リンクテキストでWeb要素検索、取得(完全一致) | drv.FindElementByLinkText("ノート").Click |
FindElementByName | Nameの値でWeb要素検索、取得 | driver.FindElementByName("q").SendKeys Keys.Control, "v" |
FindElementByPartialLinkText | リンクテキストでWeb要素検索、取得(部分一致) | Set ele = Driver.FindElementByPartialLinkText("飲酒") |
FindElementByTag | Tag名でWeb要素検索、取得 | Set body = Driver.FindElementByTag("body") |
FindElementByXPath | XPathWeb要素検索、取得 | Set ele = drv.FindElementByXPath("//input[@value='Google 検索']") |
FindElements | 指定メソッドを使用して検索ヒットしたWeb要素を全て取得 | driver.FindElements(By.partiallinktext("Google")) |
FindElementsBy | Byクラスで検索ヒットしたWeb要素を全て取得 | Set elm = driver.FindElementsBy(selenium.Strategy_Css, "#about > a:nth-child(3)") |
FindElementsByClass | CSSクラスの値で検索ヒットしたWeb要素を全て取得 | driver.FindElementsByClass("MV3Tnb").Click |
FindElementsByCss | CSSセレクタの値で検索ヒットしたWeb要素を全て取得 | Set tbl = driver.FindElementsByCss("#table1").AsTable |
FindElementsById | Idの値で検索ヒットしたWeb要素を全て取得 | Set ele = Driver.FindElementsById("searchInput") |
FindElementsByLinkText | リンクテキストで検索ヒットしたWeb要素を全て取得(完全一致) | drv.FindElementsByLinkText("ノート").Click |
FindElementsByName | Nameの値で検索ヒットしたWeb要素を全て取得 | driver.FindElementsByName("q").SendKeys Keys.Control, "v" |
FindElementsByPartialLinkText | リンクテキストで検索ヒットしたWeb要素を全て取得(部分一致) | Set ele = Driver.FindElementsByPartialLinkText("飲酒") |
FindElementsByTag | Tag名で検索ヒットしたWeb要素を全て取得 | Set body = Driver.FindElementsByTag("body") |
FindElementsByXPath | Xpath名で検索ヒットしたWeb要素を全て取得 | Set ele = drv.FindElementsByXPath("//input[@value='Google 検索']") |
IsElementPresent | 指定のWeb要素がページ内に存在するか確認 | Debug.Print driver.IsElementPresent(By.Class("MV3Tnb")) |
WaitNotElement | 要素が無くなるのを待機 | driver.WaitNotElement By.Class("MV3Tnb"), 10000 |
・メソッド
スクロールできます
Name | 解説 | Short Example |
---|---|---|
ActiveElement | アクティブ状態の要素 | driver.ActiveElement.SendKeys "hoge" |
AddArgument | ドライバー引数の追加 | driver.AddArgument "--headless" driver.AddArgument "--incognito" |
AddExtension | 拡張機能の追加(Firefox、Chrome限定) | driver.AddExtension "<crx_directory>" |
CacheStatus | キャッシュ状態の取得 | |
Close | 現在のウィンドウを閉じる | driver.Close |
ExecuteAsyncScript | JavaScriptコードを非同期で実行 | driver.ExecuteAsyncScript JS_WAIT_PDF_RENDERED |
ExecuteScript | JavaScriptコードの実行 | ele.ExecuteScript JS_ADD_YELLOW_BORDER |
Get | 設定したブラウザ(Chrome)でWebページを開く | .Get "/index.html" |
GetClipBoard | クリップボードからテキストを取得 | Debug.Print driver.GetClipBoard |
GoBack | ブラウザの「戻る」 | driver.GoBack |
GoForward | ブラウザの「進む」 | driver.GoForward |
PageSource | 直近ページのページソース取得 | html.Write Driver.PageSource() |
PageSourceMatch | ページソースで正規表現に一致する最初の出現を返す | |
PageSourceMatches | ページソースで正規表現に一致する全ての出現を返す | |
Quit | ブラウザを閉じ、オブジェクトを破棄 | .Quit |
Refresh | 現在ページの更新 | driver.Refresh |
Send | [Send]コマンドの実行 | driver.Send("GET", "/window_handles") |
SendKeys | キーボード入力操作 | driver.ActiveElement.SendKeys "hoge" |
SetBinary | 指定ブラウザの実行ファイルを設定 | driver.SetBinary "C:\Program Files\Google\Chrome\Application\chrome.exe" |
SetCapability | リモートデバッグモード等、特定機能を設定 | driver.SetCapability "debuggerAddress", "127.0.0.1:9222" |
SetClipBoard | クリップボードにテキストを設定 | driver.SetClipBoard "testtext" |
SetPreference | ブラウザの環境設定 | Driver.SetPreference "download.default_directory", ThisWorkbook.Path |
SetProfile | 指定プロファイルを設定 | driver.SetProfile "Selenium" |
Start | ブラウザのテストセッション開始 | .Start "Chrome", "https://google.co.jp" |
StartRemotely | リモートセッションでブラウザ起動 | driver.StartRemotely SERVER, "chrome" |
SwitchToAlert | アラート(ダイアログボックス)にフォーカス移動 | Set dlg = driver.SwitchToAlert() |
SwitchToDefaultContent | 最初のフレームにフォーカス移動 | Driver.SwitchToDefaultContent |
SwitchToFrame | 指定のフレームにフォーカス移動 | Driver.SwitchToFrame "frame-top" |
SwitchToNextWindow | 次のウィンドウに移動 | driver.SwitchToNextWindow |
SwitchToParentFrame | 現在のフレームの親フレームに移動 | |
SwitchToPreviousWindow | 前のウィンドウに移動 | driver.SwitchToPreviousWindow |
SwitchToWindowByName | ウィンドウハンドル値でウィンドウ移動 | driver.SwitchToWindowByName hwnds.Item(1) |
SwitchToWindowByTitle | ウィンドウタイトル名でウィンドウ移動 | driver.SwitchToWindowByTitle "New Window" |
TakeScreenshot | 現在ウィンドウのスクリーンショットを撮る | driver.TakeScreenshot() |
Until< T> | デリゲート関数のnot null or true の返りを待機。64bit版Officeでは動作不能 | driver.Until AddressOf WaitDelegate1, timeout:=2000 |
Wait | 待機(ミリ秒) | .Wait 1500 |
WaitForScript | JavaScript の not null or true を返りを待機 | Driver.WaitForScript "return document.title;" |
※Short Exampleは、動作確認ができたコードを記載しています。
・プロパティ
スクロールできます
Name | 解説 | Short Example |
---|---|---|
Actions | Actionsクラスの取得 | driver.Actions.Click(ele) |
BaseUrl | 相対参照用のベースUrl取得 | Driver.baseUrl = "https://www.google.co.jp/intl/ja" |
Keyboard | キーボードクラスの取得 | Driver.Keyboard.KeyDown Keys.Control |
Keys | Keysクラスの取得 | ele.SendKeys "Eiffel tower" & Driver.Keys.Return |
Manage | Manageクラスの取得(ドライバーの設定変更) | driver.Manage.AddCookie "hoge", "hogehoge" |
Mouse | Mouseクラスの取得 | driver.Mouse.MoveTo elm |
Proxy | Proxyクラスの取得 | driver.Proxy.SetAutodetect |
Timeouts | Timeoutsクラスの取得(ブラウザ起動前に設定) | driver.Timeouts.PageLoad = 10000 |
Title | 現在画面のタイトル取得 | Debug.Print driver.title |
TouchActions | TouchActionsクラスの取得 | driver.TouchActions.FlickFrom(elm, 0, 400, 400).Wait(1500).Perform |
TouchScreen | TouchScreenクラスの取得 | driver.TouchScreen.Tap elm |
Url | 現在画面のURL取得 | Debug.Print driver.Url |
Window | Windowクラスの取得 | driver.Window.Maximize |
Windows | 開いているブラウザのウィンドウ情報を全て取得 | Debug.Print driver.Windows.Count |
※Short Exampleは、動作確認ができたコードを記載しています。
Example
Exampleは基本的にChromeDriverと同様になります。以下ではWebDriverクラスの基本的な利用例を紹介します。
Use_WebDriver
Private Sub Use_WebDriver()
Dim driver As New WebDriver
With driver
.Start "Chrome", "https://google.co.jp"
.Get "/index.html"
.Wait 1500
.Quit
End With
End Sub
SeleniumBasic ChromeDriverClass Chromeブラウザを扱う基本クラス
概要 GoogleChromeブラウザを扱う基本クラス オブジェクト設定 ・変数宣言 Dim driver As New ChromeDriver 文法 driver.Get <URL>driver.[メソッド] メソッド・...