2012-01-09 2 views
0

Selenium 2를 사용하여 프레임 기반 웹 응용 프로그램을 테스트하고 있습니다.이 코드는 사용자에게 로그인하려고 시도하는 간단한 코드이며 결과 페이지에서 내용이있는 프레임으로 전환합니다 I 유형 FirefoxDriver, InternetExplorerDriver 또는 HtmlUnitDriverWebDriver에 보낼 경우Selenium 2를 사용하여 Opera에서 프레임 기반 웹 응용 프로그램 테스트

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"); 

이 제대로 작동 : 페이지. 그러나 드라이버가 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가 프레임에서 작동하지 않습니까?

답변

0

이 프레임은 바로 톱 페이지 안쪽에 있습니까, 아니면 서브 프레임 안에 있습니까? 후자의 경우 계층 구조의 맨 위에서 시작하여 상위 프레임을 먼저 선택해야 할 수 있습니다.

프레임과 함께 Dragonfly/테스트 도구를 사용할 때 문제가 있음을 확인했지만 문제가 해결되었다고 생각했습니다. 당신이 어딘가에 작은 데모를 넣을 수 있다면 ... 좀 봐봐.

0

나는 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을 사용했습니다. 나는 몇 시간을 낭비했고 이것에 대한 답을 찾지 못했습니다. Opera 용 switchTo(). frame() 메소드를 사용하여 작업 한 사람이 있습니까?

관련 문제