Тестирование фреймового веб-приложения в Opera с использованием Selenium 2 - PullRequest
0 голосов
/ 09 января 2012

Я тестирую наше веб-приложение на основе фреймов, используя Selenium 2. Это простой код, который пытается войти в систему пользователя, и на полученной странице переключиться на фрейм с содержимым страницы:

driver.get("http://localhost/index.pl");
driver.findElement(By.name("session_username")).sendKeys("my_username");
driver.findElement(By.name("session_password")).sendKeys("my_password");
driver.findElement(By.xpath("//input[@value='log in']")).click();
driver.switchTo().frame("qabody_r_head");

Это работает правильно, если я отправляю WebDriver типа FirefoxDriver, InternetExplorerDriver или HtmlUnitDriver. Но если драйвер имеет тип OperaDriver, я получаю исключение со следующей ошибкой:

Exception in thread "main" org.openqa.selenium.NoSuchFrameException: Invalid frame name qabody_r_head
Build info: version: '2.15.0', revision: '15105', time: '2011-12-08 09:57:28'
System info: os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_02'
Driver info: driver.version: unknown
at com.opera.core.systems.scope.services.ums.EcmaScriptDebugger.changeRuntime(EcmaScriptDebugger.java:431)
at com.opera.core.systems.OperaDriver$OperaTargetLocator.frame(OperaDriver.java:772)
at SeleniumTest.testLogin(SeleniumTest.java:26)
at SeleniumTest.main(SeleniumTest.java:59)

Я что-то не так делаю или OperaDriver не работает с фреймами?

Ответы [ 2 ]

0 голосов
/ 19 января 2012

Я столкнулся с такой же ситуацией при использовании OperaDriver.Я хотел переключиться на кадр, содержащийся в главном окне.Я не смог переключиться на фрейм, и вместо этого я получил следующую ошибку org.openqa.selenium.NoSuchFrameException: Неверное имя фрейма

Ниже приведены шаги, которые я предпринял при попытке выбрать фрейм:

//...
driver.switchTo().defaultContent();
driver.findElement(By.xpath("//input[@value='Save']")).click();
driver.switchTo().frame("SaveFrame");       
//...

Обратите внимание, что приведенный выше код прекрасно работает в IE, Firefox и Chrome.

Я использовал Opera 11.60 при тестировании выше.Я потратил пару часов и не нашел ответа на этот.Кто-то работал с методом switchTo (). Frame () для Opera, и он работал?

0 голосов
/ 16 января 2012

Этот кадр находится непосредственно внутри верхней страницы или внутри подкадра? Если это последнее, возможно, вам придется начать с верхней части иерархии и сначала выбрать родительский фрейм.

Я заметил проблемы при использовании Dragonfly / тестовых инструментов с фреймами, но я думал, что они были решены. Если бы вы могли поместить небольшое демо где-нибудь, я мог бы посмотреть ..

...