2017-09-17 14 views
-2

selenium webdriverとjava.Alsoを使用してAngular jsアプリケーションを自動化する必要があります。それは非角度jsアプリケーションのためです。Angular jsアプリケーションを自動化し、protractorを使用する代わりにselenium webdriverとjavaを使用して同期を処理する方法

角度js要素を見つけ、待ち時間を処理し、セレンwebdriverとjavaを使用して操作を実行する可能な解決策を教えてください。

ありがとうございます。

+2

この質問は何を意味していますか?まず、セレニウムと関連ウェブドライバを使用して、プログラミング言語(Javaなど)があれば、いつでも標準セレクタなどを使ってすべての要素にアクセスできます。 次に、「Selenium WebDriverとJavaを使用してAngularJSアプリケーションを自動化する」 ? なぜ分度器があなたの仕事を制限しているのですか? AngularJSアプリケーションとやりとりするには十分以上のものです。何か他に何かがあれば、例えばnode.jsコードをリンクしたり、外部のものを呼び出したり、他のプロセスやアプリケーションを起動したりすることができます。 – quirimmo

+0

selenium webdriverとjavaを使用して、角度jsアプリケーションを自動化している間に、角度jsアプリケーションがロードされるまで待つことはできません。だから私は、セレニティwebdriverとJavaを使用して自動化するソリューションが必要です – Pankaj

+0

分度器は、javascript自体はすべての例外をキャッチしないと我々はマルチスレッドを行うことはできませんので、例外処理を実行することはできません。 – Pankaj

答えて

0

これは私が以前に何度か見つけたことであり、角度を待つのにかなり成功しました。

final String script = "var callback = arguments[arguments.length - 1];\n" + 
      "var rootSelector = \'body\';\n" + 
      "var el = document.querySelector(rootSelector);\n" + 
      "\n" + 
      "try {\n" + 
      " if (angular) {\n" + 
      "  window.angular.getTestability(el).whenStable(callback);\n" + 
      " }\n" + 
      " else {\n" + 
      "  callback();\n" + 
      " }\n" + 
      "} catch (err) {\n" + 
      " callback(err.message);\n" + 
      "}"; 

    ((JavascriptExecutor) getDriver()).executeAsyncScript(script, new Object[0]); 
関連する問題