こんにちは。
友人から頼まれて使ったこともないSeleniumというものを調査し、ExcelのVBAから使ってみました。以下、その備忘録です。
早速、実践練習としていろいろなサイトを見てみたのですが、前回までに紹介した「キーボード入力」、「クリック」、「値の取得」では太刀打ちできない状況に。
今回は、その代表例、セレクトボックス(プルダウンメニューと呼ぶのかな?)について備忘録します。
■ 動作環境
OS: Windows 8.1(64ビット)
Excel: 2013(32ビット)
Chrome: 86.0.4240.198
Selenium Basic: v2.0.9.0
■ セレクトボックス(プルダウンメニュー)とは
複数の項目から何かを選択する際に使用されるコントロールです。
HTMLはこんな感じ。
■ 任意の項目を選択する
セレクトボックス(プルダウンメニュー)の任意の項目を選択するには、SelectElementクラスのSelectBy系メソッドを使います。
SelectByText
SelectByValue
SelectByIndex
※SelectElementオブジェクトは、WebElementクラスのAsSelectメソッドで取得できます。
① セレクトボックス(プルダウンメニュー)に表示されている項目名(文字列)で選択する場合は、SelectByTextメソッドを使います。
② valueの値が分っている場合は、SelectByValueメソッドも使えます。
※「4~7日で発送」のvalue値=3を指定
(後、項目順で検索できるSelectByIndexメソッドもあります!)
■ セレクトボックス(プルダウンメニュー)値を取得
よく分らずメソッド、プロパティを色々触ってみました。
① textプロパティでは、セレクトボックスに設定された文字列(全ての項目文字列をvbLfで連結した形)が取得できます。
② valueプロパティでは、選択されている項目のvalue値が取得できます。
※「4~7日で発送」が選択されている状態で取得
③SelectElementクラスから情報を得られそうです。
AllSelectedOptions
IsMultiple(複数選択可能かどうか)
Options
SelectedOption
※IsMultiple以外は「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」とのことで使用できず…涙
■ まとめ
これで択一型のセレクトボックス(プルダウンメニュー)は自由自在に操れると思います。
(複数選択型は、もう少し調査しないと…ですね。💦)
なお、本備忘録も活用した【メルカリ管理ツール】を以下サイトで販売しております。
ご興味ございましたらご覧ください。
次回以降も、引き続き基本の4テクニックで乗り切れなかったケースを備忘録しようと思います。
Comments