uibot:みんなのためのロボット!
iframeネストまたは参照によって、あるドメイン名の下のwebページを独立した別のwebページに埋め込まれることがあります。それを「クロスドメインwebページ(cross-domain web pages)」と呼ばれます。 この場合、セキュリティ上の理由から、それぞれのブラウザは違う戦略があります。実際の例を見てみましょう:
chromeブラウザを開きます;
qqメールボックスページを閲覧します
http://mail.qq.com;
qqログインに切り替えます;
f12 key を押します;
chrome開発者モードを開きます;
ctrl shift cの組み合わせキーを押す;
chromeの要素表示機能に入り、マウスを「qq login」領域に移動します;
次に左クリックします。
cross-domain page case: qq mailbox
明らかに、現在のwebページのドメイン名はmail.qqq.comですが、xui.ptlogin2.qqq.comというドメイン名のwebページが埋め込まれています ご覧のとおり、2つのドメイン名はまったく違います。これは代表的なクロスドメインwebページです
この場合、ieブラウザーはドメイン間で特別な処理を行いません。 セキュリティ上の理由から、chromeブラウザーは、要素の選択、js、およびその他の操作を含むiframeの下ののページへのアクセスを禁止します。即ち、ログインqq番号、qqパスワードなどを含むqqログインのインターフェイス要素を選択することはできないことを意味します。それで、操作の自動化がさらに困難になっています。
この状況をどのように対処しますか? ieブラウザを使用するか、またはパラメーターコマンドを起動することでchromeのセキュリティ設定をオフにします。 chromeのセキュリティ設定について後文で説明します。それを閉じる前に、注意しなければならないのは、chromeユーザーデータを一時的に保存するディレクトリを選択する必要があります。d:tempだと仮定します。
google chromeアイコンを右クリックし、attribute ->shortcutを選択します。「ターゲット」列の中で起動パラメーターを入力します。フォーマットは次のとおりです:
- disable-web-security - user-data-dir = user data directory.
たとえば、chromeはc:program files(x86)google chrome application chromeの下にインストールされています。exe、およびユーザーデータディレクトリはd:tempです。そこで、フォーマットではc: program files (x86) google chrome application chrome - disable - web-security-dir = user:\ temp. 41 を入力する必要があります。
chromeが閉じられたセキュリティ設定
これを行った後、chromeを再び開くと、chromeアドレスバーが次のように表示されています。そして、すでにインストールされている拡張機能が消えます。気になる必要はありません。これは、chromeのユーザーデータディレクトリが変更されたからです。 uibotのchrome拡張機能プログラムを再インストールすれば、その操作を自動的に行います。
セキュリティ設定を閉じた後にchromeがディスプレイをオンにします
上記の設定により、chromeはクロスドメインアクセスをサポートすることができます。