2017-02-01 5 views
-3

私のスクリプトのいずれかで予期しない問題が発生しています。ArrayIndexOutOfBoundsException:getWindowHandles()を呼び出すときに1

組織のレベルや組織のレベルの下位など、さまざまなレベルのニュースを公開できるアプリケーションがあります。職種によっては、特定の人だけが組織レベルでニュース記事を公開することができます。

私はこのレベルでスクリプトを書いており、それらはすべて動作します。

私はスクリプトをコピーし、ニュースをより低いレベルで公表するように少し修正しました。これは、私が一見問題に遭遇している場所です。ある特定のスクリプトは、ニュース記事に画像を追加し、一連のモーダルダイアログウィンドウを操作する必要があります。このワークフローは、組織レベルと同じです。

at com.desire2learn.dev.pages.CreateItemNewsPage.get_window_ids(CreateItemNewsPage.java:338) 
at com.desire2learn.dev.tests.NewsItemsUnitLevelTest.publish_news_with_image(NewsItemsUnitLevelTest.java:379) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) 
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) 
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) 
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) 
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) 
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) 
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) 
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) 
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) 
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) 
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) 
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) 
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) 
at org.junit.runners.ParentRunner.run(ParentRunner.java:363) 
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) 
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) 

それは以下の通りである上にスリップのコードを次のように

java.lang.ArrayIndexOutOfBoundsException: 1 

スタックトレースがある:私は低レベルでスクリプトを実行すると

は、しかし、私は述べてエラーを取得します:

public void get_window_ids(){ 

    //Get the handles for the main window and the popup window for the upload button 
      try { 
       Set<String> AllWindowHandles = driver.getWindowHandles(); 
       System.out.println(AllWindowHandles.size()+ " distinct windows: " + AllWindowHandles); 
       window1 = (String) AllWindowHandles.toArray()[0]; 
       System.out.println("\nwindow 1 is " + window1+"\n"); 
       window2 = (String) AllWindowHandles.toArray()[1]; 
       System.out.println("\nwindow 2 is " + window2+"\n"); 
      } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
} 

ウィンドウ2でトリップします。

ただし、この同じ方法は組織レベルで機能します。

2つの異なるウィンドウ:[CDwindow-13376ec5-43ac-4668-a2f9-50660e3b09cf、 CDwindow-d3e9e6eb-954A-4bf8-ba28-b30049ed85d8私はまた、組織レベルでの2つの異なるウィンドウがあると言うことに気付きます

2の別個のウィンドウ:また】

Iは単位レベルでデバッグ以下をigetが[CDwindow-13376ec5-43ac-4668-a2f9-50660e3b09cf、 CDwindow-d3e9e6eb-954A-4bf8 -ba28-b30049ed85d8]

スクリプトを実行すると、私は1つの別ウィンドウしか表示されません....非常に奇妙です。

それは私を困惑させる。誰かが私にポインタを与えることができますか、私はちょうどここで何か愚かなことをしていますか?

UPDATE私はポップアップをモーダルまたは非モーダルポップアップとして表示され、問題を解決すると思われるかどうかを制御するアプリケーションで構成設定を変更しました。ポップアップでは、それでもnonModalDialogであることが表示されます。だから、何も変わっていないようです。 confの項目が無効になっているときにはスクリプトは機能しませんが、無効になっているときに機能します。

+2

結果のセットに要素が1つしかなく、2番目の要素を取得しようとしているため、エラーが発生しています。 – Chocksmith

+0

はい、私はちょうどそれを今すぐ見つけました。私は '' AllWindowHandles.size()+ "別ウィンドウ:" + AllWindowHandles); 'というコードを追加しました。orgレベルでは2つの別個のウィンドウがありますが、下位レベルには1つしかありません別ウィンドウこれを反映するために質問を編集します。しかし、私は下のレベルでウィンドウのIDをチェックして、彼らは一意であるように見える – tarquin

答えて

0

この質問は無視してください。私は解決しました。問題はModalと非モーダルウィンドウであり、スクリプトは非モーダルのポップアップ用に構成されていました。私は、アプリケーションの別の部分で実行されたスクリプトが、モーダルダイアログ用に設定されていて、そのプロセスでスクリプトを壊しているのを見ることができませんでした。

これについて人々に時間を無駄にすることについての知識。

+0

謝罪する必要はありません。あなたがそれを解決してそれを受け入れることができれば、あなた自身の質問に答えてください。同じ問題を抱える他の人がそれを解決する方法を知るようにしてください。 –

関連する問題