EdgePowerShellコマンド活用Webブラウザの操作を自動化で行いたい処理の一つに、ファイルのアップロードがある。いちいちファイル選択ダイアログで選ぶのは面倒だからだ。この処理は自動化に失敗しやすい部分でもある。今回は、アップロードの自動化について取り上げる。基本コマンドの使い方」の過去回はこちらを参照。Edgeの便利な使い方ファイル選択に使うサンプルページ今回も前回と同じ「https://getbootstrap.jp/docs/5.0/examples/cheatsheet/」をサンプルページとして使用する。https://getbootstrap.jp/docs/5.0/examples/cheatsheet/このページの上から3分の1くらいのところにファイル選択のボタン(input要素)が用意されているので、これを使う。Edgeの開発者モードで対象となる要素のXPathを調べておく。//∗[@id="flexSwitchCheckChecked"]なお、操作上使うことになるので、ファイル選択ボタンの下にあるスイッチボタンのXPathも調べて上の表に加えてある。PowerShellから操作していくでは早速、PowerShellから操作していく。Edgeを起動し、さらにhttps://getbootstrap.jp/docs/5.0/examples/cheatsheet/をオープンする。「webdriver_edge_start.ps1」は稿末に付録として掲載してあるので参考にしていただきたい。https://getbootstrap.jp/docs/5.0/examples/cheatsheet/これでhttps://getbootstrap.jp/docs/5.0/examples/cheatsheet/が開くので、とりあえず手動で3分の1ほどスクロールし、ターゲットとなるファイル選択ボタンを表示させておく。操作対象となる部分XPathを指定して対象となるファイル選択用のinput要素を取得する。'//*[@id="customFile"]'ファイルの選択は、Invoke-SeKeysコマンドレットでファイルパスを送ることで実行できる。ここでは「~\Desktop\images.zip」というファイルを選択することにして、次のようにファイルパスを送る。Edgeでは次のようにファイル選択用のダイアログが起動してくる。パスは全く関係ない状態になっている。Edgeだとそうならない。実装を追っていないので確かなことはわからないが、セキュリティポリシーでこの処理を禁止しているように思われる。自動的にファイルをアップロードされるというのはセキュリティ上は好ましくないということから、禁止しているのかもしれない。