2016-10-10 10 views
0

webdriverをセレンでダイナミックiframeのページを検索しようとID、私は仕事へのさまざまな方法を試してみました私のプロジェクトでは

ことを、我々は上をクリックするたびに変更されたのiframeがありますその上に

1)   List<WebElement> frameList=driver.findElements(By.tagName("iframe")); 
      System.out.println(frameList.size()); 

      for(int i =0; i<(frameList.size());i++){ 
     driver.switchTo().frame(i); 
     System.out.println(i); 
     try{ 
      driver.findElement(By.id("TextBox_4")).sendKeys("987654321"); 
      System.out.println("Element found"); 
     } 
     catch (NoSuchElementException e){ 
     System.out.println("Element not found"); 
     } 

//これはiframeの要素をチェックします。

2)   WebElement frame = 
        driver.findElement(By.xpath("//div[contains(@id,'title')]")); 
      driver.switchTo().frame(frame); 

// XPathを使用してこの検索フレームとキーワードが含まれていますが、その示す要素が見つからない例外

3)   int frameSize = driver.findElements(By.tagName("iframe")).size(); 
      System.out.println(frameSize); 
      driver.switchTo().frame(2); 

// I(すなわち3)フレームのサイズを印刷し、各フレーム毎の値を試してみました(すなわち、0,1,2)

上記のコードを修正してください。あなたがiframesの数を固定している場合は ディワカ

+1

「IFRAME」のIDの例をいくつですか?どのように変化しますか?とにかくそれにアクセスする方法があるかもしれません。 'IFRAME'はいつもHTMLの同じ場所にありますか?例えば一貫して特定できるいくつかの要素の中に? – JeffC

+0

JeffCが言ったことに加えて、あなたのウェブページを私たちと共有してください。細部まで手伝ってもらえません。 – testerjoe2

+0

** [frameToBeAvailableAndSwitchToIt](https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/support/ui/ExpectedConditions.html#frameToBeAvailableAndSwitchToIt-org.openqa.selenium.By)を試してみてください。 - )**メソッドを使用して[Explicit wait](http://stackoverflow.com/a/14515517/4193730)を適用します。むしろあなたのために物事を簡素化します。まず、FirebugのHTMLタブでiframeを探し、iFrameのxpathを作成し、上記の方法を使用します。 – Subh

答えて

0

おかげで、あなたはあなたの特定のiframeにアクセスするために、その特定のインデックスを使用することができます。あなたは5 iframesを持っていて、私はあなたの問題を解決するかもしれない、と思う

driver.switchTo().frame(2); 

を使用して、それに切り替え、その後第三iframeを選択したい、してみましょう。

関連する問題