2019年11月22日11:46

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をダウンロードして入れ替える必要があります。
Chromeのバージョンは下の画像のように右上の「Google Chromeの設定」⇒「ヘルプ」⇒「Google Chromeについて」をクリックすると調べることができます。↓

chromedriver.exeは下のサイトからダウンロードします。↓
https://sites.google.com/a/chromium.org/chromedriver/downloads
下の画像の赤い四角の中から、さきほど調べたChromeのバージョンにあったものをダウンロードしてください。例えば、(Chromeのバージョンが78.○○なら、ChromeDriver 78.○○をダウンロード)↓

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にログインしている場合は一度ログアウトしてください。)

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

⑦ 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をクリック、↓

表示⇒オブジェクトブラウザとして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」などの単語で検索すると、いろいろと参考になるサイトがあるので、調べてみてください。
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をダウンロードして入れ替える必要があります。
Chromeのバージョンは下の画像のように右上の「Google Chromeの設定」⇒「ヘルプ」⇒「Google Chromeについて」をクリックすると調べることができます。↓

chromedriver.exeは下のサイトからダウンロードします。↓
https://sites.google.com/a/chromium.org/chromedriver/downloads
下の画像の赤い四角の中から、さきほど調べたChromeのバージョンにあったものをダウンロードしてください。例えば、(Chromeのバージョンが78.○○なら、ChromeDriver 78.○○をダウンロード)↓

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にログインしている場合は一度ログアウトしてください。)

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

⑦ 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をクリック、↓

表示⇒オブジェクトブラウザとして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」などの単語で検索すると、いろいろと参考になるサイトがあるので、調べてみてください。