WebDrive Selenium dla IE zatrzymuje się po wywołaniu iframe

0

Od jakiegoś czasu zmagam się z automatyzacją pewnej stronki przy użyciu WebDrive Selenium w Internet Explorer.

Strona składa się z ramek gdzie dodatkowe ramki są zagnieżdżone w ramkach. Problem polega na tym że jeden z przycisków (umieszczony w ramce typy 'parent') wywołuje ramkę typu 'child' jako popup na całą stronę zakrywając przy tym ramkę typu 'parent' co powoduje zatrzymanie/pauzę wykonywania skryptu. Czy ktoś z was tutaj zaglądających wie czy webdrive dla InternetExplorer obsługuję takie rami? Ewentualnie wie jak obsłużyć ramkę typu child?

Próbowałem następujących rozwiązań:

  • driver.switchTo().frame(driver.findElement(By.id("frame_child")));
  • po wywołaniu ramki typu 'child' próbowałem (możliwie że nieumiejętnie) podłączyć do istniejącego okna przeglądarki webdrive raz jeszcze aby obsłużyć tę ramkę

żadna z wymienionych wyżej opcji niestety nie zadziałała.

Proszę o pomoc w rozwiązaniu problemu.

0

Problem rozwiązałem.Ale od początku.

Wersja przeglądarki to IE11, błędu żadnego mi nie wyrzucał webdriwer ponieważ eclipse zatrzymywał się (tak jakby został wciśnięta pauza) po kliknięciu w przycisk.
Natomiast nie wiedzieć dlaczego ale: problem tkwił właśnie w tym przycisku (umieszczony w ramce typy 'parent') a dokładniej w wykonanej akcji na nim.

Otóż wykonanie na przycisku akcji:

WebElement przycisk = driver.findElement(By.id(id_przycisku));
przycisk.click();

powodowało problem tutaj opisany.

Natomiast rozwiązaniem problemu okazało się wykonanie na przycisku akcji:

WebElement przycisk = driver.findElement(By.id(id_przycisku));
przycisk.sendKeys(Keys.ENTER);

po czym następnie można było bez najmniejszego problemu przełączyć się do ramki:

driver.switchTo().frame(driver.findElement(By.id(id_odpalonej_ramki))):

Problem rozwiązany, można zamknąć lub przekazać do przechowalni potomnym ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1