VBAでEdgeを使用する方法 ②コード編
Dim driver As New Selenium.EdgeDriver driver.Get "https://kyoyo-salon.hatenablog.com/archive" driver.URL driver.Wait 100 など driver.FindElementByClass(keyword) Internet Explorer (IE) の操作でIdで取得する場合は、driver.FindElementById(keyword) のようにsなしの単数形で、Id以外で取得する場合は、driver.FindElementsByName(keyword) のように複数形でコレクションとなる。 一方、EdgeDriverの場合はすべてに対して単数形(一つの要素)と複数形(コレクション)がある。つまり次の2つは同じ要素を取得する。 driver.FindElementByName(keyword) driver.FindElementsByName(keyword).Count *2 以下、driver.FindElementByName(keyword)などの要素を「elm」と記載する。*3 elm.Clear *4 elm.AsSelect.SelectByText keyword 文字列 ele.Text リンク elm.Attribute("href") elm.click typeがsubmitの要素では、elm.submitもOK クリックして新しいウインドウが開きそちらを取得したい場合 elm.click 元のウィンドウを取得したい場合 driver.SwitchToPreviousWindow 名前で指定して取得したい場合 driver.SwitchToWindowByName(keyword) driver.SwitchToAlert.Accept *6
はじめに
定義
Dim keyword as String, myString as String
Dim elm As Selenium.WebElement (Dim elm As Object でもOK)URLを指定して開く
URLを取得
待機(単位はミリ秒)*1
各種エレメントを取得
driver.FindElementByCss(keyword)
driver.FindElementById(keyword)
driver.FindElementByLinkText(keyword)
driver.FindElementByName(keyword)
driver.FindElementByPartialLinkText(keyword)
driver.FindElementByTag(keyword)
driver.FindElementByXPath(keyword)
driver.FindElementsByName(keyword)(0)要素の数を数える
値を入力
elm.SendKeys (myString)ドロップダウン(プルダウン)メニューの選択
elm.AsSelect.SelectByIndex 2 など値を取得
ボタンをクリック
複数画面の処理
driver.SwitchToNextWindow
driver.SwitchToWindowByTitle(keyword)ポップアップ(アラート)の処理 *5