質問: powershell 5.1 IE11 目的 jenkinsのダッシュボードの新規ジョブ作成のURLに移動してジョブを複製するのを、大量にあるので自動化しようとしています(手作業だとミスりそうなので...) ターミナル上からは諸事情でパーミッションがないのでcurlで複製?が出来ないそうです。なのでブラウザ上からの自動化を依頼されました。 URL遷移後の操作 テキストボックス(仮にid:moto)に複製元のジョブ名を入れ、複製後のジョブ名を生成してテキストボックス(仮にid:saki)に入れてOKボタンを押します。 書き方 最初にISE上で逐一動きを確認しながら書いていき、正しく動いた分をスクリプトに蓄積させて完成させました。 現象 一通り出来たところでテストを開始ボタンを押したところ、テキストボックスmotoに値を入れるところでISEがデバッグのまま、止まってしまいます。motoには値は入っていません。 スクリプト実行のまま止まってしまい、停止ボタンを押しても通常の状態に戻らない(フリーズではない)ので、いちいちブラウザとISEを落として再度起動しないといけません。 値を入れるところでブレイクポイントを入れ、コマンドライン上から落ちるところの記述を実行すると値が入ります。 記述 スマホからなので全文は書けないですが、入力する記述は、 $ie.document.getElementById("moto").Value=$oldName で、id=motoは対象の部品しかないことを確認しています。 入力直前にfocus()、click()するなど試しましたがだめでした。 ($ieはInternetExplorer.Applicationのオブジェクト) これまで何本か自動化スクリプトを書いてきましたがそれらとのちがいは、テキストボックスmotoにjqueryのautocompleteUrlが入っている点で、 これは何か関係があるのかないのか...?と疑問に思っています。
回答: seleniumで値を入れることができ、そして複製元のジョブ名の候補がズラッと出てくる光景を見て、もしかしたら入力候補を出そうとするjqueryの処理が絡んで、ISEの実行が止まってしまうのかなーというぼんやりとした予想をしました。 seleniumを使うことで、回避ができましたが、純粋にPowershellだけで書かないといけない条件だったらどうやって解決できたのか、少しもんやりしました。