1

自動化が必要な醜いデータ入力タスクがあります。問題は、一部のプロセスが API を持たない Web ベースの ajax サービスに依存していることです。

iMacros (またはその他の自動化ツール) の問題は、マクロが JavaScript をページに挿入する (ajax コールバックを変更し、必要なすべてを実行する) たびに、子スクリプトがタスクの準備ができていることを親スクリプトに通知する方法がないことです。 、単一のスレッドでプロセスを続行させます。WAIT 命令を使用すると、信頼性がゼロになり、フェイルセーフを実装する方法がありません。

Chrome 拡張機能、XSS ブラウザーのセキュリティの低下、さらには cURL と PHP を介したリクエストの複製など、考えられることはすべて試しました。これらにはそれぞれ独自の制限があります。

私は次のような解決策を受け入れます。

  • ページの読み込みが完了するのを待つことができます (onload イベント)
  • その特定のページの JavaScript を変更したり、vars を操作したりできます。
  • サブタスクが完了したことを親呼び出し元に通知し、適切なイベントを発生させることができます
  • フラッシュをサポート

任意の代替手段とヘルプをいただければ幸いです。

4

1 に答える 1

1

ajax リクエストが完了するまで待機するさまざまな方法を説明している Selenium 中心の良い記事があります: http://agilesoftwaretesting.com/?p=111

これは、既存の JS を変更しようとするよりもはるかにクリーンです。次のいずれも JavaScript から直接呼び出すことができるため、自動化フレームワークが JavaScript の呼び出しをサポートしている限り (Selenium/webdriver がサポートしています)、Web サイトが使用している ajax ライブラリに応じて、これらの関数を呼び出すだけです。

jQuery: 「jQuery.active」</p>

プロトタイプ: 「Ajax.activeRequestCount」</p>

道場: 「dojo.io.XMLHTTPTransport.inFlight.length」</p>

値が 0 であることを確認してから続行してください。

于 2011-11-28T23:33:30.407 に答える