パラメーター '初期 URL': 構文エラーです。

アクション: 新しい Chrome を起動する 、や 新しい Microsoft Edge を起動する 等にてアクセスしたいURLを入力した際に「パラメーター '初期 URL': 構文エラーです。」というエラーとなることがある。これはもちろんURLの中に不正な文字が含まれていることが原因だ。よくあるのはURLに「%」が含まれている場合。その場合はURLのなかの「%」をすべて「%%」に置き換えればよい。「構文エラーです。」だけが出ると対処に少しとまどうかもしれないのでメモ。

 

「パラメーター '初期 URL': 構文エラーです。」が出てフローが実行できない

f:id:yujihb:20211016161618j:plain

「構文エラーです。」とだけメッセージがでる例。対処方法がパッと見ではわからない

f:id:yujihb:20211016162135j:plain

 

「変数'〇〇'が存在しません。」というメッセージがでる例。このヒントであれば変数に関する何かが原因であるとすぐにわかる。

f:id:yujihb:20211016162400j:plain

 

URLのなかの「%」をすべて「%%」に置き換えればOK

f:id:yujihb:20211016163547j:plain



バックグラウンドで実行

フローをバックグラウンドで実行することは限られた操作のみとなるが可能である。当然ながらフォアグラウンドのウィンドウの情報が必要なキーボードのキー送信やマウスによるクリックやOCR等の処理はできないので、そうではないアクションのみをフローに含めることとなる。ファイルやテキストや変数の処理、DOSコマンドなどのスクリプト実行はウィンドウが不要なのでOK。意外にWebオートメーションによるブラウザー上の操作はバックグラウンドで実行が可能である。例えば以下のようなウェブサイトへアクセスしてボタンを押したりデータ抽出したりといった操作はバックグラウンドでできる。

バックグラウンドで実行可能なブラウザー上の操作の例

f:id:yujihb:20211018231921j:plain

1. Webブラウザインスタンスの取得

一番最初のWebブラウザインスタンス取得の際に、起動モードを「新しいインスタンスを起動する」、ウィンドウの状態を「最小化」としておくと、このアクションを含めブラウザーの操作をすべてバックグラウンドで実行できる。

f:id:yujihb:20211018231957j:plain

2. 必要に応じてタブを開いて別のサイトにアクセスする

タブを開いたときには新しいWebブラウザインスタンスNewBrowser等が生成される。この例では、以降のアクションでNewBrowserを指定しhttps://hatenablog.com/が表示されているタブに対して処理を実行する。毎回複数タブを開いたりexample.comにアクセスする必要が特になければ上記ステップ1.で初めから目的のサイトにアクセスすればよい。

f:id:yujihb:20211018233119j:plain

3. 開いたタブ上で別のサイトに移動したりする

f:id:yujihb:20211018234040j:plain

4. ボタンを押すなどする

f:id:yujihb:20211018234249j:plain

なおフロー開始(トリガー)自体のバックグラウンド実行は現在の無料版の標準ではおそらく不可と思われる。Power Automate Desktopのコンソールを開いてフローの実行ボタンをクリックする最初の部分はマウスなりでマニュアル操作が必要である。その部分までも自動化したい場合には、Windowsのタスクスケジューラーと有志による非公式のツールを利用して実現する方法が存在するのだが、公式には有料版で可能であるようなので有料版を使用するとよいだろう。

 

正規表現で数字を検索する

良く使う正規表現のひとつ。任意の半角の数字を検索する場合は以下のように入力する。「+」は直前の文字の1回以上の繰り返しを意味するので0~9の数字が何桁であってもマッチできる。

 

[0-9]+

 

f:id:yujihb:20211015031623j:plain

(2021/12/20追記)

なお数字の個数を指定するには以下のように「{ }」の間に数値をいれる。以下の例では4ケタの数値を検索できる。

 

[0-9]{4}