2011-11-08 13 views
0

私は自分のプロジェクトをセレンRC-Java-Eclipseを使って自動化しています。 私のアプリケーションに2つのタブがあり、1つは詳細を入力して保存し、2つ目は特定のタスクを実行するための新しいウィンドウを開きます。 iexploreでセレンRCコードを実行しています。 セレンが第2のタブをクリックしているとき、新しいウィンドウを開くはずのjavascriptエラーが表示されています。Selenium RCは新しいIEウィンドウを開かず、JavaScriptエラーを投げます。

selenium.click("link=Link/Unlink"); 

Javascript error: Webpage error details

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) Timestamp: Tue, 8 Nov 2011 09:08:43 UTC

Message: Object doesn't support this property or method Line: 383 Char: 2 Code: 0 URI: http://172.20.160.136/scripts/common.js

何をすべきかを提案してください...私はそれを自動化させるために急いでいます....が、その新しいウィンドウをロードするために私を遮断します。

答えて

0

、私はそこにいくつかのものを行う、新しいポップアップウィンドウを開くためのボタンをクリックします同様のケースなどを持っていた。これは私がやった方法です、

selenium.click("//td[@id='openNew']"); 

selenium.waitForPopUp("", DEFAULT_TIMEOUT); 
String[] windowNames = selenium.getAllWindowNames(); 
assertEquals(2, windowNames.length); 
selenium.selectWindow(windowNames[1]); 

は多分あなたを待っていませんウィンドウを開き、いくつかのjsリンクを持つ可能性のある正しいウィンドウを選択しないでください。コントロールがまだ元のウィンドウに表示され、エラーが発生します。

+0

DEFAULT_TIMEOUTはファイル内で定義した定数で、ミリ秒単位で値を指定してから、メインウィンドウが1つ(インデックス0)、ポップアップが1つ(インデックス1)の2つのウィンドウがあると主張しています。 、私はポップアップウィンドウであるウィンドウインデックス1を選択しています。 – Ash

+0

Thanks Ashley。私はちょうどselenium.click以外のurコードを直接使用しました...しかし、SAME RESULT AGAIN-新しいウィンドウはタブをクリックすると開きません!メインウィンドウのステータスバーにjavascriptエラーがあります.DEFAULT_TIMEOUT = "40000"。私は何か操作をする必要があります... PLZはそれを克服する方法を教えて.. – Deputy

+0

@ user1035170 - あなたはまだ同じエラーを取得していますか?直接アクセスしたときにアプリケーションが正しく動作することを確認したと思います。あなたのコードを見ずに私に伝えるのは難しいです。見てみましょう..どのウィンドウがcommon.jsにリンクしていますか?主なものかポップアップか?メインページの場合は、ページの最後にjsファイルへのリンクがあり、ページが完全にロードされる前にリンクをクリックしている場合は、リンクをクリックする前にwaitForPageToLoadを入れてみてください。私はあなたのコードを見ずに解決策を提示するのが難しいと言ったように。 – Ash

0

アプリケーションが壊れています。 scripts/common.jsではなく、のセレンの一部です。エラーをバグとしてアプリケーション開発者に報告してください。

+0

手作業で見つかった場合はバグを記録しています。しかし、手動でタブをクリックして、希望のポップアップウィンドウを開いたときにうまくいきました。 これはjavascriptエラーです。セレニウムを扱うときにセレンを介してポップアップwinodwを読み込もうとしています... なんて幸運です! – Deputy

0

オンクリックイベントのように、タブクリックに関連付けられたイベントがあるかどうかを確認します。もしそうなら、selenium.fireevent( "identifier"、 "eventname")を使ってそのイベントを発生させてください。また、xpathを使用してタブを1回クリックしてみてください。同じ名前の他の要素があるかもしれません。

+0

はい。そのタブのViewPageSourceの下にあるhtmlコードを見つけました。

  • Link/Unlink
  • ...私たちはonclickイベントをタブクリックに関連付けました。 selenium.fireevent( "link = Link/Unlink"、 "onClick")を試してみましょう。 – Deputy

    +0

    私はXPathを試しました。 私はselenium.fireEvent( "リンク=リンク/リンク解除"、 "onclick")を書き、セレンを実行しました。このコマンドでエラーが発生しました。エラーメッセージは次のとおりです。引数が無効です。 私は間違ってどこに行ったか??? – Deputy

    +0

    eventnameはクリックであり、onclickではありません。 – Ash

    関連する問題