自動化・効率化ならKTパソコンスクール

powerd by うなぎいもプロジェクト

UWSCとSeleniumBasicでChromeブラウザを操作する

カテゴリー │UWSC



UWSCでブラウザを操作する時、InternetExplorerは比較的操作しやすいものの、Chromeの操作は難しいのですが、SeleniumBasicを使うとUWSCからでも操作しやすくなります。

SeleniumBasicは以下のサイトからダウンロードします。↓
https://github.com/florentbr/SeleniumBasic/releases/latest

現在(2019/11月)の最新版はv2.0.9.0になっているので、SeleniumBasic-2.0.9.0.exeをダウンロードします。インストールはダウンロードしたSeleniumBasic-2.0.9.0.exeをダブルクリックして、あとは画面指示に従うだけで大丈夫です。

その後、使用しているChromeのバージョンに合わせて、chromedriver.exeをダウンロードして入れ替える必要があります。

※SeleniumBasicのchromedriver.exeを自動で入れ替えできるフリーソフトを作成しました。↓
こちらからダウンロードできます。


Chromeのバージョンは下の画像のように右上の「Google Chromeの設定」⇒「ヘルプ」⇒「Google Chromeについて」をクリックすると調べることができます。↓
UWSCとSeleniumBasicでChromeブラウザを操作する

chromedriver.exeは下のサイトからダウンロードします。↓
https://sites.google.com/a/chromium.org/chromedriver/downloads

下の画像の赤い四角の中から、さきほど調べたChromeのバージョンにあったものをダウンロードしてください。例えば、(Chromeのバージョンが78.○○なら、ChromeDriver 78.○○をダウンロード)↓
UWSCとSeleniumBasicでChromeブラウザを操作する

chromedriver.exeはWindows10の場合はC:\Users\ユーザー\AppData\Local\SeleniumBasicにあるので、上書き保存して、そこにあるものと差し替えします。

下は指定のキーワードで検索して、表示されたページのスクリーンショットを取るサンプルコードです。↓
SeleniumBasic検索.uws

① driver = CreateOleObj("Selenium.WebDriver")とwaiter = CreateOleObj("Selenium.Waiter")でSeleniumのCOMオブジェクトを生成します。

② driver.Startで新しいSeleniumセッションを開始します。1番目の引数はブラウザの種類、2番目の引数はベースURLとなります。

③ driver.Getで相対または絶対URLで新しいWebページをロードします。

④ driver.Window.Maximizeでウィンドウを最大化しています。ここはUWSCのGETIDでウィンドウのIDを取得してCTRLWIN(ID, MAX)としても良いと思います。

⑤ q = .FindElementByName("q")で指定された名前に一致する最初の要素を検索しています。これによってGoogleの検索ボックスのname属性を取得しています。これを調べるためにはChromeで下のように検索ボックスで右クリックし、検証をクリックします。↓(Googleにログインしている場合は一度ログアウトしてください。)
UWSCとSeleniumBasicでChromeブラウザを操作する

⑥ Chromeのデベロッパーツールが出てくるので、下の画像のようにinputタグのname属性を見ると、name="q"となっているのがわかると思います。これをFindElementByNameの引数にします。
UWSCとSeleniumBasicでChromeブラウザを操作する

⑦ q.SendKeysで検索する単語をブラウザに送信します。

⑧ q.Submitで検索します。

⑨ While waiter.Not(pos(.Title, search_word))・・・WendのところはUWSCのpos関数を使用してウィンドウのタイトルに検索する単語が出てくるまで待つ処理を入れています。これはUWSCのGETIDで指定のウィンドウが出てくるまで待つ処理にしても良いと思います。

⑩ screenshot = .TakeScreenshot.SaveAs(image_file)でスクリーンショットを指定のファイル名で保存します。ここはUWSCのSAVEIMGを使用しても良いと思います。

⑪ driver.QuitでSeleniumを終了し、関連するすべてのウィンドウを閉じます。


ウェブサイト内の要素を取得するのに、FindElementByNameの他にFindElementByClass、FindElementByCss、FindElementById、FindElementByLinkText、FindElementByPartialLinkText、FindElementByTag、FindElementByXPathなどがあります。

Excelを持っている方は開発タブからVisualBasic⇒ツール⇒参照設定として、Selenium Type Libraryにチェックを入れてOKをクリック、↓
UWSCとSeleniumBasicでChromeブラウザを操作する
表示⇒オブジェクトブラウザとしてWebDriverで検索すると、使用できる関数やプロパティがわかるので便利です。

下のコードはフォーム入力のサンプルです。↓
SeleniumBasicフォーム入力.uws(http://ktpcschool.web.fc2.com/practice.htmlのiframe内のフォームに入力)

iframe内の要素にはそのままではアクセスできないので、driver.SwitchToFrameでiframeに切り替える必要があります。引数にはインデックス、名前、要素を指定できます。

下はSeleniumBasicのGitHubのサイトです。↓
https://github.com/florentbr/SeleniumBasic

その他、「SeleniumBasic Excel」や「Selenium」などの単語で検索すると、いろいろと参考になるサイトがあるので、調べてみてください。


  • このエントリーをはてなブックマークに追加
  • LINEで送る

同じカテゴリー(UWSC)の記事


上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

削除
UWSCとSeleniumBasicでChromeブラウザを操作する
    コメント(0)