2013-07-05 10 views
12

Senaryo: - Bir sayfamda iFrame Text Editor ve bir düğme de var. - Metin çerçevesi gövdesi 'dan okumak için ana çerçeveden iFrame'e geçtim - Metin Düzenleyicisi'nin gövdesinden okuduktan sonra, sayfanın üst çerçevesindeki düğmeyi tıklatmak istiyorum. - Bunun için aşağıdaki ifadeyi kullanarak iFrame'den ana çerçeveye geri dönmeyi denedim: webDriver.SwitchTo(). DefaultContent(); - Ama yine de ana çerçevede bulunan düğme elemanını bulamıyorum.Ana Çerçeveye iFrame'den geçiş ve Selenium Webdriver kullanarak Üst çerçevede bir öğe bulma. C#

Yardımlarınız için minnettarım! Teşekkürler

+0

biz HTML görebiliyor IFrame'ler – Arran

cevap

13

Yanıtlarınız çocuklar için. Çözüldü!

çözüm: Ben webDriver.SwitchTo().DefaultContent(); kullanırken

  • sayfanın en üst penceresine webDriver geçer. [Önceden bu pencerede düğme elemanını arıyordum ve bu nedenle düğmenin sayfanın ana çerçevesinde oturması nedeniyle bulamıyordu]

  • Ana pencereye geçtikten sonra tekrar webDriver anahtarını değiştirdim sayfanın ana çerçevesine. Bu ana çerçeve düğme elemanına sahipti. Böylece düğme elemanını bulabildim. Ve bu sorunu çözdü!

Yani nihai kod yerine aşağıdaki webDriver.SwitchTo().DefaultContent(); var ama mevcut değil:

_webDriver.SwitchTo().Window(windowHandle); 
    _webDriver.SwitchTo().Frame("mainFrame"); 

Not: windowHandle Yukarıdaki kodda sayfanın en pencerenin tanıtıcı olduğunu. Sanırım bu değer tarayıcılara göre değişebilir, emin değil.

6

Ben benzer bir sorun ile mücadele ve ben Window Handle tarafından geri dönmek olabileceğini tespit edildi:

string currentWindow = Driver.CurrentWindowHandle; 
// switch to frame and do stuff.. 
Driver.SwitchTo().Window(currentWindow); // switch back 
2

Benim durumumda şu kod iyi çalıştı:

driver.switchTo().parentFrame(); 
İlgili konular