YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Japanese subtitles

← 05-10 Record And Replay Solution

Get Embed Code
2 Languages

Showing Revision 3 created 06/24/2014 by Fran Ontanaya.

  1. これはとても簡単に理解できます
  2. なぜならテンプレートがすでにあるからです
  3. グローバル変数saved_command_indexがあります
  4. saved_command_indexを呼び出します
  5. この瞬間リプレイモードになります
  6. リプレイモード中はoriginal_input_command関数は
    呼び出せなくなります
  7. すべてのコマンドは配列saved_commandsから来ます
  8. どう機能するのか見てみましょう
  9. 配列saved_commandsから読み取られた
    同じコマンドセットを取得しました
  10. Webページ外のプログラムを読み込みます
  11. それがsaved_commandsのコンテンツとして
    永久に保存されます
  12. 例えば記録やリプレイ用のファイルです
  13. これをファイルから読み込みます
  14. テキストベースのコマンドを使うプログラムでは
  15. 記録とリプレイする入力は認識するのが簡単です
  16. しかしグラフィカルなユーザインタラクションの
    再現となると
  17. 何のイベントを記録しリプレイするのか
    判断するのが難しくなります
  18. Webブラウザのグラフィカル・ユーザインタラクションが
    あると仮定します
  19. ユーザとプログラムの間に自らを配置する
  20. キャプチャリプレイツールがあります
  21. あとでリプレイできるように
    ログインユーザからのすべてのイベントを保存します
  22. 問題は どの抽象化レベルでイベントを選ぶかです
  23. たとえばマウスポインタの座標を集めるために
  24. マウスクリックを保存すること
  25. これは記録するのがとても簡単です
  26. たとえば(100,300)のポジションで
  27. ここをクリックして検索する
  28. あるいは(200,500)のポジションにカーソルがある間
    テキストを入力する
  29. ファイルメニューのここをクリックする
    またはこの下のこのロールダウンメニュー
  30. もちろんこれらはすべてイベントログに送られます
  31. リプレイに関してはスクリーンの同じポジションで
  32. すべての要素の正確なポジションを取らなければ
    いけないことが問題です
  33. 今度はスクリーン解像度または
    フォントサイズが変わると仮定します
  34. 要素の中には元のポジションで
    小さくまたは大きくなるものがあります
  35. しかし しないものもあります
  36. スクリーンのあるボタンをアクティブにした
    マウスクリックが
  37. 機能しなくなるのがわかりますね
  38. 同様に いくつかの要素のポジションが変わったら
  39. 記録されたイベントが機能しなくなります
  40. またタイミングが問題になることもあります
  41. このドロップダウンメニューのクリックを
    記録したと仮定します
  42. 0.5秒後のドロップダウンメニューが現れた時
  43. この要素の1つをクリックしました
  44. 今のところ大丈夫です
  45. これが記録したものです
  46. リプレイしている時
  47. 特にWebぺージの何かをリプレイしている時
  48. 遅れが出る可能性があります
  49. そしてドロップダウンメニューが
    時間どおりに現れなくなります
  50. そしてこのポジションをクリックした
    0.5秒後と規定されている
  51. 記録したイベントをリプレイ中に
  52. どこかまったく違う場所を
    クリックすることになります
  53. もちろんプログラムが変わってしまったのです
  54. 検索ボタンをこの下から上に移動させたら
  55. 完全な座標を基にしたイベントをリプレイすると
  56. 別の場所をクリックすることになるでしょう