2013-01-25 13 views

cevap

20

Bunu başarmak için Web Sürücü Beklet ve Beklenen Koşul sınıfını kullanabilirsiniz.

Bu kodu deneyin.

WebDriverWait wait = new WebDriverWait(driver,10); 
    wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(frameName); 

Yukarıdaki kod given frame up to 10 seconds için bekleyecektir. Çerçeve mevcutsa, o zaman verilen çerçeveye geçer. Aksi halde, TimeoutException atar.

Zaman sınırı, uygulamaya ve kullanıcı isteğine bağlıdır. Daha fazla bilgi için

http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/support/ui/ExpectedConditions.html#frameToBeAvailableAndSwitchToIt(java.lang.String)

+0

Teşekkür @Manigandan, çözümünüz iyi çalışıyor –

+0

Lütfen bunu bir cevap olarak yapın. – Manigandan

+0

Teşekkürler! Annen için cazibe gibi çalıştı! –

0

Ben selenyum 2 kullanmaya geçiş olur webdriver API kullanmak planlıyorum gibi bir yöntem varsa bana bildirin ve lütfen

selenium.waitForFrameToLoad(frameJCLeft, strTimeOut); 
driver.switchTo().defaultContent(); 
driver.switchTo().frame(frameJCLeft); 

olduğunu "WebDriver destekli selenium 1.0 şeyler" yerine RemoteWebDriver kullanın. Sonra WebDriver.TargetLocator ile oynayacağım.

+0

i benim yaptığım tam olarak ne ama, için her durumda sayesinde doğru beklenen bekleme durumu tespit cudnt "Ben selenyum destekli webdriver ortadan kaldırmak ve sadece webdriver API kullanmak planlıyorum" de belirtildiği gibi cevap arkadaşı. –

+0

Sayfa başlığını veya başka bir beklenen nesnenin çerçevede görünmesini engelleyen ve bekleyen kendi onFrameLoad() yöntemini oluşturmayı denediniz mi? Böyle bir şeyle, yerel bir RemoteWebDriver'a geçtiğinizde yeniden kullanabilirsiniz. – djangofan