ここでは、Autopilot機能の制限事項について説明します。
認証基盤について
Autopilot機能で利用できる接続先の認証方式は、Basic認証、フォーム認証、およびCookie認証です。
以下に利用できない認証方式の例を記述します。
セキュリティカードなどによるSSLクライアント認証
生体認証
画像認証
IPアドレスを元にした認証
通信方式について
Autopilot機能で利用できる通信方式は、非同期通信を除いたHTTPおよびHTTPS通信です。
以下に利用できない通信方式の例を記述します。
WebSocket機能などを使用したソケット通信
XmlHttpRequestなどの非同期通信
FTP、Windowsファイル共有(SMB/CIFS)、samba
フレームで分割されたコンテンツについて
フレームで分割されたコンテンツのうち、一部のコンテンツのみが更新された場合、画面遷移について正しく記録・実行できません。
画面コンテンツについて
Autopilot機能は、表示されるコンテンツを解析し、ブラウザの処理をサーバ上で疑似的に実行します。そのため、以下に示すコンテンツでは、解析が正しく行えず、ガジェット表示時に不具合が発生する場合があります。
画面がテキストデータ以外で作成されている場合
Flash/Applet/ActiveXなどのアプリケーションをクライアントにダウンロードし、クライアントで実行してサーバと通信を行う画面では、通信内容をサーバで取得できません。
以下に例を記述します。
<object classid="clsid:0000" codebase="./0000.cab" id="flash0000" height="100" width="100"> <embed src="/0000.swf" name="flash0000" type="application/x-shockwave-flash" pluginspage="/0000/getflashplayer_jp">
記録時のエラーログビューに以下のメッセージが表示された場合、上記が原因で不具合が発生している可能性があります。
コンテンツにActiveX、Flash、Java Appletなどが含まれています。
画面がJavaScriptの実行によって動的に作成される場合
コンテンツの解析時と画面の表示時(JavaScriptの実行時)で情報が異なってしまうため、矛盾が発生します。
以下に例を記述します。
JavaScriptが動的に生成される場合
以下のようなJavascriptがコンテンツに含まれる場合です。
eval("document.location=" + "/foo/bar" + query); with(document.F1){target="newTarget"; action="action.cgi"; } setTimeout('"document.location = " + "/foo/bar" + query’,2000); setInterval('"document.location = " + "/foo/bar" + query',1000); document.write("document.location = " + "/foo/bar" + query); document.write("<IMG ");document.write("SRC='/image.gif'>");
記録時のエラーログビューに以下のメッセージが表示された場合、上記が原因で不具合が発生している可能性があります。
eval関数を利用しています。 with関数を利用しています。 setTimeout関数を利用しています。 setInterval関数を利用しています。 document.write関数を利用しています。
form送信時にJavaScriptが呼び出される場合
以下のようなタグがコンテンツに含まれる場合です。
<form name="mail000" action="dummy" onSubmit="document.mail000.action='/mail.cgi'"> <input type="button" name="submit000" onClick="valueChange(this);">
記録時のエラーログビューに以下のメッセージが表示された場合、上記が原因で不具合が発生している可能性があります。
フォーム情報の作成でJavascriptを利用しています。
コンテンツのURL情報を操作している場合
以下のようなJavascriptがコンテンツに含まれる場合です。
location.href = "/foo.bar/mail.html"; location.pathname = "/mail.html"; location.search = "q=mail"; location.hash = "index5";
記録時のエラーログビューに以下のメッセージが表示された場合、上記が原因で不具合が発生している可能性があります。
コンテンツのURL情報を操作しています。 document.URL関数を利用しています。 document.domain関数を利用しています。 location.protocol関数を利用しています。 location.host関数を利用しています。 location.hostname関数を利用しています。 location.port関数を利用しています。 location.pathname関数を利用しています。 location.hash関数を利用しています。 location.search関数を利用しています。 location.href関数を利用しています。
画面表示場所を指定している場合
以下のようなJavascriptがコンテンツに含まれる場合です。
window.name = "menuWin"; self.name = "menuWin";
以下に例を記述します。
Interstage管理コンソール
記録時のエラーログビューに以下のメッセージが表示された場合、上記が原因で不具合が発生している可能性があります。
window.name関数を利用しています。 self.name関数を利用しています。
認証などに利用するCookieを、JavaScriptで操作している場合
以下のようなJavascriptがコンテンツに含まれる場合です。
document.cookie=assign();
記録時のエラーログビューに以下のメッセージが表示された場合、上記が原因で不具合が発生している可能性があります。
cookieを操作しています。
関数、メソッドまたはobjectを定義して、その中でURL情報を操作している場合
以下のようなJavascriptがコンテンツに含まれる場合です。
foo(x, y).bar.href = "/foo/bar";
本件については、記録時のエラーログビューにはメッセージは表示されません。
form情報が複雑なコンテンツ
form情報の解析に失敗する場合があり、実行時に正しい情報がサーバに引き継がれません。このため、ログインに失敗したり、Autopilot機能を使って操作する画面に、記録時のユーザー情報が表示される場合があります。
以下に例を記述します。
複数のformタグがあり、同じnameのinputタグが存在する場合
POSTメソッドのformタグがあり、そのaction情報にクエリ(?以降)が含まれる場合
本件については、記録時のエラーログビューにはメッセージは表示されません。