【VB.NET】Chromeを操作してファイルダウンロードを自動化してみた

前記事で紹介したツール開発

【実績】WEBからデータ(Excel)ダウンロードと加工まで自動化

を通して覚えた事を備忘録代わりに
残しておこうと思います!

MEMO
開発環境
Windows10 64bit
VisualStudio2019

Seleniumを準備した

ブラウザ操作ではよくこの名前をみるので
早速自分も試してみた。

※Selenium WebDriverで始めるブラウザ自動操作入門
僕はここの記事を参考に
「Selenium WebDriver」のChromeを準備しました!

VisualStudioでの参照設定ができたら
インポート文はこんな感じ。

SeleniumのChrome操作で覚えた事

ファイル保存先の指定は?

まずこれに悩みました。
てか一体どういう仕組みなのか全く分からず。。

要は
「ChromeOptions」インスタンスに条件を設定させ
それをChromeドライバーインスタンス引数に指定させる!

という感じでした!

また操作中にコマンドプロンプトが表に出てくるので
これを非表示にする設定もしておきましょう!

保存時のファイル名まで指定したいけどどうすればいいの?

ここですごく悩みましたが結論分かりませんでした。
ダウンロード完了後に
必要あればファイル名を変える事にしました。

Chromeヘッドレスの設定は?

ヘッドレスの設定は
先ほどの保存先を設定するのと同様に
オプションインスタンスに設定します!

だけど

ダウンロードできなくなった!

色々調べてみましたが
今のところそういう仕様なんだそうです…。

※Headless Chromeでファイルをダウンロード
ここの記事で解決策が見つかりそうでしたが
.NETのAPIでどう記述するのか分からず。。

目的は「処理を非表示にする」という事で
ウィンドウを最小化する事で諦めました。

画面クリックが反応しない

ファイルのダウンロードボタンをクリックさせてるのに
プログラム実行しても反応せず…。

①ボタンクリック
②ドロップダウンメニューが表示される
③Excel形式を選択
④ダウンロード実行

ここの③の後④が無反応で
どうしたらいいか悩んでました。。

■無反応のとき

■修正

無反応のときは
①と③のクリック動作を分けて記述してましたが
修正してうまくいった方は
一連の動作を貯めておいて「.Build」で再現するという感じです!

同じ動作でも記述方法は色々あるんだなと感じました…。