macOS 上の Google Chrome を使用したテストの制限事項

以下のリストに、macOS 上で Google Chrome を使用した場合の、テストの再生とロケーターの記録の既知の制限事項をリストします。
  • Silk4J は、typeKeys メソッドで CMD キーをサポートしません。
  • Silk Test は、Google Chrome を使用した xBrowser ドメインの子テクノロジ ドメインのテストをサポートしていません。たとえば、Apache Flex または Microsoft SilverlightGoogle Chrome ではサポートされていません。
  • Silk4J は、HTTP 基本認証ダイアログのテストの記録をサポートしません。
  • Silk Test は、Google Chrome のネイティブ サポートは提供しません。内部 Google Chrome 機能をテストすることはできません。たとえば、テストで、Win32 でナビゲーション バーにテキストを追加して現在表示されている Web ページを変更することはできません。回避策として、API コールを使用して Web ページ間を移動できます。Silk Test は、Alert API を使用した警告および類似のダイアログ ボックスの処理をサポートします。
  • Silk4J は、IMoveable クラスの getFocus メソッドをサポートしません。
  • 複数の Google Chrome ウィンドウ上での同時テストは、macOS 上ではサポートされません。
  • 既に開いている Google Chrome ウィンドウへのアタッチは、macOS 上ではサポートされません。
  • Google Chrome 49 以前を使用する場合、Internet Explorer を使用してテストを再生する場合、executeJavaScript をテストするために次のコードを使用できます。
    // Java code
    desktop.<BrowserWindow> find("//BrowserWindow")
      .executeJavaScript("function foo() { alert('Silk Test'); }");
    desktop.<BrowserWindow> find("//BrowserWindow")
      .executeJavaScript("foo();");

    Google Chrome 上でテストを再生する場合、スクリプトはクロージャで実行され、グローバル コンテキスト (window) では実行されません。すべては関数内で実行されます。上記のサンプル コードの最初の ExecuteJavaScript 呼び出しは、Google Chrome では機能しません。これは、関数 fooExecuteJavaScript 呼び出しが存続する間だけ有効であるためです。

    Google Chrome 上で同じテストを再生する場合は、次のような関数式を使用できます。
    // Java code
    desktop.<BrowserWindow> find("//BrowserWindow")
      .executeJavaScript("window.foo = function() { alert('Silk Test'); }");
    desktop.<BrowserWindow> find("//BrowserWindow")
      .executeJavaScript("window.foo();");

    前のサンプル コードは Silk4J では機能します。他の Silk Test クライアントに対するコードも同様です。詳細については、Silk Test クライアントのヘルプにある ExecuteJavaScript メソッドのドキュメントを参照してください。