Blue Prism で Internet Explorer を Attach する際の Child Index に関する注意点
相手によって話し方を変えることは重要で、
時にはキャラクタ設定ごと変えないといけないんだけど、
現状、それをやる時間もパワーも足りないんだよなぁ。
(言い訳)
Intenet Explorer を Attach する際の Child Index: 0 か、 1 か?
Internet Explorer(IE)を Attach する際に、Child Index でウィンドウを指定できる話は、以前にしました。
ただ、この場合、いくつか注意点があり、場合によっては、限定的にしか動作しないようです。
まず、Internet Explorer の画面が1つしか上がっていない場合を考えます。
このとき、Child Index = 0 で Attach すると、Blue Prism は問題なく Internet Explorer を操作できるようです。
しかし、Child Index = 1 で Attach すると、いくつか制限を受けるようです。
具体的には、HTMLモードが利用不可となり、
UI Automation や Active Accessibility モードも制限を受けます(例えば、タブのタイトルやURLがあるアドレスバーを識別できない)。
Internet Explorer が複数、立ち上がっている場合も同様のようです。
Child Index = 2 とすれば、二つ目の Internet Explorer を識別できますが、
上記と同様にHTMLモードが使用できなかったり、タブのタイトルやアドレスバーをUIA、AAで識別できません。
なんでこうなるのか?
詳しいメカニズムは不明です、、(すいません)
Twitterで以下のような示唆をいただきまして、、
>>IEがWindows OS上でprocessが2つになる理由
— ゆゆこ (@yuyu_heart_star) March 12, 2019
既知かもしれませんが、これじゃないですかね?https://t.co/7A00af9PRL
>> コンテンツが表示される部分を処理するタブ プロセスという 2 種類のプロセスが、各 1 つ以上動作します。
ここから類推すると、
そもそも、Internet Explorer は新規に起動したり、タブを立ち上げるごとに Windows上のプロセスが上がる形になっているようで、
Child Index = 0 はHTMLモードが効く特別なプロセス(マネージ プロセス)で、
Child Index = 1, 2, ... はタブごとのプロセス(コンテンツ プロセス)なので、動作に制約がある・・・ということなのかもしれません。
ただ、これがあらゆる環境で起きる・・・とも言い切れないように思います。
実際、タブを複数、追加しても、Windows上の iexplore.exe が増えないことがあったり、、タブを追加した後に、新規に Internet Explorer を立ち上げると、二つの画面でひとつの iexplore が共有されているような挙動をしたり・・・奥が深いな。
あまりスッキリしませんが、とりあえず、Internet Explorer を Attach する際は、Child Index = 0 にしておいた方が良さそうです。
まとめ
- Internet Explorer を Attach する際は、Child Index = 0 にしておいた方が良さそう。
- IEのWindows上のプロセス(iexplore.exe)の挙動が、結構、謎である・・・
人気コーナー:今日の出来事(Twitter出張版)
偉い人 「Blue Prismは難しい。
ユーザーが誰でも使えるようなもんじゃない!」
俺 「いや、必ずしもそうじゃないっすよ~」
「意外と使いやすいところもありますし~」
偉い人 「いや、難しい!・・・だが、それがいい」
俺 「へっ?」
偉い人 「こんなもん、誰でも使える・・・となったら玉石混交、
すぐにゴミ箱みたいになって、たとえ良いものがあっても、
瓦礫の中に埋もれてしまう・・・
怖くて使えない、そんな風になってしまう」
偉い人 「専門家に限定する必要はないが、
ちゃんと使いこなせる人にだけ配れば良い。
むしろ、全員に配ってはいけないものだ」
俺 「・・・瓦礫の底に~♪」
偉い人 「埋~もれた♪」
俺&偉い人「希望の破片たち~♪」