こんにちは。
友人から頼まれて使ったこともないSeleniumというものを調査し、ExcelのVBAから使ってみました。以下、その備忘録です。
前回スクリプトのお試し操作として最低限のブラウザ操作を済ませましたので、今回はスクリプトの基本操作を動作させてみました!
ある程度のサイトはこの基礎だけで乗り越えられると思います。
■ 動作環境
OS: Windows 8.1(64ビット)
Excel: 2013(32ビット)
Chrome: 86.0.4240.198
Selenium Basic: v2.0.9.0
■ とりあえず動かしてみる…
前回作ったスクリプトに基本操作を追加します。
Excelファイルの任意のシートに、任意のボタンを配置、マクロの編集にて、以下のソースを貼り付けて動作を確認してみました。
該当のボタンを押すと、Chromeが立ち上がります。
検索キーワード入力エリアに「selenium basic」と入力し、検索を実行します。
検索結果(検索数と検索時間)をデバッグウィンドウに表示します。
■ まずは要素の特定(FindElement系メソッド)
ホームページ上のテキスト(文章)やボタン、入力フォーム、リンクなどは、それぞれ1つの要素(WebElement)と呼ばれます。要素の値取得や値設定、クリックなどの操作を実施するには、スクリプト上でまず要素を特定します。
▼「検索キーワード入力エリア」を特定
▼「検索結果表示エリア」を特定
このサンプルスクリプトで利用しているname属性の「p」、class属性の「util-Text--bold」は何れもYahooのトップサイト(のソース)を見て、「このキーワードで要素を特定しよう」と決めたものです。
WebDriverクラスには、要素を特定するためのFindElement系メソッドが多数提供されています。
FindElementByClass
FindElementByCss
FindElementById
FindElementByLinkText
FindElementByName
FindElementByPartialLinkText
FindElementByTag
FindElementByXPath
※複数要素を一度に取得できるFindElementsBy系メソッドもあります
目的の要素を特定しやすいよう適切なFindElement系メソッドを使いましょう。
■ キーボード入力(SendKeysメソッド)
要素へキーボード入力する際は、Sendkeysメソッドを使います。
※すでに入力された文字列を消去する際はClearメソッドと組み合わせて使います。
■ クリック(Clickメソッド)
要素をクリックする際は、Clickメソッドを使います。
■ 値の取得(Textプロパティ)
要素に設定された値を取得する際は、Textプロパティを使います。
■まとめ
「要素の特定」、「キーボード入力」、「クリック」、「値の取得」をやりくりするだけでも大体のサイト、大体のやりたいことは実現できます。
まずはこの4つのテクニックを自由に使える状態になるのが理想ですね!
なお、本備忘録も活用した【メルカリ管理ツール】を以下サイトで販売しております。
ご興味ございましたらご覧ください。
次回以降は、この4つのテクニックでは乗り切れなかったケースを備忘録しようと思います。
Comments