top of page
検索

Selenium Basic 使ってみたー(FindElements系メソッド)

更新日:2021年8月12日

こんにちは。

友人から頼まれて使ったこともないSeleniumというものを調査し、ExcelのVBAから使ってみました。以下、その備忘録です。


今回は、以前紹介したFindElement系メソッドの複数検索版、FindElements系メソッドにチャレンジしてみたいと思います。



■ 動作環境

 

OS: Windows 8.1(64ビット)

Excel: 2013(32ビット)

Chrome: 86.0.4240.198

Selenium Basic: v2.0.9.0


■ とりあえず動かしてみる…

 

WebDriverオブジェクトを作って、Webサイトへアクセスする箇所は割愛です。^^

あるフリマサービスで、私が出品している品物の一覧画面において、出品一覧を取得してみました。


実行結果は、次のとおりです。

textプロパティから返ってくる値は「商品名」、「いいねの数」、「コメントの数」、「出品ステータス」でした。(なので、この後に何等かの処理にこれら値を使うためには、文字列編集を駆使しないといけないので面倒です…。涙)

※「test」は、サブルーチンの名前

※textプロパティの内容が改行されているのは、vbLfが含まれているため



■ FindElements系メソッド

 

冒頭で説明したとおり、FindElement系メソッドの複数検索版です。

WebDriverクラスに、以下のものが実装されています。

  • FindElementsByClass

  • FindElementsByCss

  • FindElementsById

  • FindElementsByLinkText

  • FindElementsByName

  • FindElementsByPartialLinkText

  • FindElementsByTag

  • FindElementsByXPath


①引数

概ねどのメソッドも「name As String」、「minimum As Long」、「timeout As Long」の3種類を引数として扱いますが、まずはnameだけ操作できるようになれば十分です。笑

nameとは、~ByClassであればクラス名、~ByIdであればID名のようにメソッドごとで要素を特定するために使う識別値(の名称)のことを指します。


②戻り値

WebElementオブジェクトの集合体(WebElements)です。



■ 特定の要素を取り扱う

 

FindElementsBy系メソッドで取得できるWebElementsの、特定のWebElementのみを取り扱う場合は、以下の何れでもいけるみたいです。


例①


例②


※いずれも1個目(配列1スタート)の要素を指定する場合の方法



■ 全ての要素を取り扱う

 

取得できるWebElementsの大方の要素を取り扱う場合は、以下の何れかでしょう。


例①: For Each文の利用


例②: Countプロパティの利用



■ まとめ

 

FindElements系メソッド、いかがでしたか?

Webサイトの操作をするためには、いかに要素を特定するかが重要であり、その決め手となるのがFindElement系メソッド、FindElements系メソッドですので絶対ノウハウ習得したいですよね!


なお、本備忘録も活用した【メルカリ管理ツール】を以下サイトで販売しております。

ご興味ございましたらご覧ください。


次回以降も、苦労した点を備忘録しようと思います。

閲覧数:5,377回0件のコメント

Comments


bottom of page