2016-04-17 39 views
0

「条件を見る」オプションを持つウェブページがあります。 '用語を見る'をクリックすると、モーダルダイアログボックスが開きます。私はモーダルダイアログのテキストを確認したい。私が直面している問題は、メインウィンドウからモーダルダイアログボックスに切り替える方法です。私はdriver.getWindowHandles()を試しましたが、それはうまく動作しません。フォーカスをダイアログボックスに切り替えてテキストを取得するにはどうすればよいかお勧めします。Selenium Webdriverを使用してモーダルダイアログに表示されるテキストを確認する方法

私は言語としてSelenium 2.52.0とjavaを使用しています。

enter image description here

+0

あなたが別のウィンドウがある場合にのみ切り替える必要がある、しかし、私はモーダルダイアログboxhtmlコードが同じであると思います窓。また、フレームがあるかどうかがチェックされ、最初にフレームが切り替わります。 –

答えて

0

下記のように使用してください。あなたのセレンのバージョンを更新してください。

String contentOfTerms = driver.findElement(By.xpath("//*[@class='terms_content']/p")).getText(); 
System.out.println(contentOfTerms); 
+0

それは動作しません。それは要素を見つけることができないと言います。 –

+0

こんにちは、このxpathを使用する// * [@ class = 'terms_content_team_upgrade_cs5_promo']/div [2]/p plzそれが役に立ちそうなら、 –

+0

が動作することを確認してください。ありがとう:) しかし、あなたは私に言うことができます鍬は、このxpathを計算しましたか? 私はfirepathプラグインfirepathを使ってxpathを取得していますが、これは私に別のxpathを与えます:html/body/div [10]/div/div/div [2]/div/div [2]/p [1]このためには機能しません。 –

0

)(それは別のウィンドウではありませんので、あなたはgetWindowHandlesで何もしてはいけません。同じページ上でbrowser.findElement(モーダルパス).getText()を使ってテキストを取得するだけで、アサートしてみてください。

0

それは別のフレーム内にある場合は、ウィンドウを切り替える必要がありますが、それは別のフレームに試してみると、次のコードを使用している場合、子ウィンドウに親を切り替えるれるが、その別のフレームのようには見えません。

public void windowSwitch() 
      { 
       String parentWin = driver.getWindowHandle();  
      parentWin1=parentWin; 
       Set<String> allwin =driver.getWindowHandles(); 
      for(String child : allwin) 
      { 
      if(!child.equals(parentWin)) 
       { 
       driver.switchTo().window(child); 
        } 
       } 
      } 

そしてそれは、ダイアログボックスである場合にのみ、それから文字列を取得するには、次のコードを使用します。

 public String alert() 
     { String str; 
      Alert alert = driver.switchTo().alert(); 
      str= alert.getText(); 
      alert.accept(); 
      return str; 

     } 
+0

これはモーダルダイアログボックスです。新しいウィンドウは作成されません。 アラートでもありません。私がそれをAlertとして扱うと、NoAlertPresentExceptionが発生します。 –

+0

Plsにコードが表示されます。私はより良い方法でそれを助けることができます。 –

関連する問題