2017-07-13 26 views
0

フレームに切り替える際にスクリプトの実行中にブラウザスタックでSeleniumスクリプトを実行しようとしています。いつかそれはしますが、いつかはありません。 恒久対策はありますか?ブラウザスタックでSeleniumスクリプトを実行します。

driver.switchTo().defaultContent(); 
List iframeElements = driver.findElements(By.tagName("iframe")); 
System.out.println("The total number of iframes are " + iframeElements.size()); 
WebElement frame = driver.findElement(By.tagName("iframe")); 
driver.switchTo().frame(frame); Thread.sleep(5000); 
driver.switchTo().defaultContent();
+0

あなたがそれに切り替えるには、フレームが利用可能になるのを待つことができ、フレームとframe.The恒久的な解決のHTMLスニペットへの切り替えのためにと後にしようとしたコードを、BSでの実行がされて追加してください。やや遅くなります。 – lauda

+0

driver.switchTo()。defaultContent(); \t \tリスト iframeElements = driver.findElements(By.tagName( "iframe")); \t \t System.out.println( "iframeの総数は+ iframeElements.size()です。 \t \t \t \t WebElement frame = driver.findElement(By.tagName( "iframe")); \t \t driver.switchTo()。フレーム(フレーム)。 \t \t Thread.sleep(5000); driver.switchTo()。defaultContent(); –

答えて

0

フレームが利用可能になるまで待つことができます。それはあなたを助けるかもしれません。

WebElement frame = driver.findElement(By.tagName("iframe")); 
WebDriverWait wait = new WebDriverWait(driver, 90); 
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(frame)); 
関連する問題