WebDriverVBA

WebDriverVBA「Edge/ChromeでJavaScript経由でラジオボタンの選択/解除」【ExcelVBA】

2022年、Internet Explorerのサポート終了→SeleniumBasicに置き換えた開発を進めましたが、
SeleniumBasicのインストールが厳しい環境のユーザー様も多く存在しました。
その為、自前でWebDriverを動かす「WebDriverVBA」の開発を進めました。

ある程度動くよう(SeleniumBasicに比べたらまだまだですが)になったため、
同じようにお困りのユーザーの方に、ソフトライセンス販売の形で提供致します。
WebDriverVBAを使用した際のサンプルコードを以下に記載します。

ラジオボタンをJavaScript経由で選択・解除するサンプルコード

VBAでEdge/Chromeを起動し、Webページ内のラジオボタンの選択・解除する方法です。
通常は要素を指定し、クリック処理を入れるだけです。

しかしながら、JavaScript経由で選択したい場合があります。

当方の問い合わせページにラジオボタンがある為、そちらをサンプルとして記載します。


Public Sub test_executescript_radio_button()

    Dim Driver As webDriverVBA
    Set Driver = New webDriverVBA

    Dim val As Variant

    '■ドライバーを起動
    Call Driver.Start(vcChrome)

    '■目的のサイトへ移動する
    Call Driver.Navigate("https://vba-create.jp/contact/")

    '■ウインドウを最大化
    Call Driver.MaximizeWindow

    '■読み込みを待つ
    Call Driver.Wait(2000)

    '■「VBA開発の予算」までスクロール
    Call Driver.ScrollTo("//*[@id=""wpcf7-f25-p23-o1""]/form/p[7]/label", vcXpath)

    '■ラジオボタンを選択
    Call Driver.ExecuteScript("document.getElementsByName('radio-type').item(0).checked=true") 'メール希望
    Call Driver.ExecuteScript("document.getElementsByName('radio-type').item(1).checked=true") '電話希望
    Call Driver.ExecuteScript("document.getElementsByName('radio-type').item(2).checked=true") '打合せ希望
End Sub

上記のようにはExecuteScriptで、JavaScriptを動作させることで反応を強制的にさせます。

注意
javascript実行時の添え字は0スタートです。html内で指定したnameが1番目の場合、添え字で0を指定します。
  • WebDriverVBAまとめページ(ページが増えれば公開します。)

WebDriverVBAについて

Excel VBAでSeleniumBasicを使わずにEdge/Chromeでスクレイピングするためのツールです。
SeleniumBasicがインストールできない環境の方にもスクレイピングをお助けします。

料金などについてはこちらからお問い合わせくださいませ。

 

 

コメント

タイトルとURLをコピーしました