2012-01-09 7 views
0

私は、Selenium 2を使用してフレームベースのWebアプリケーションをテストしています。これはユーザーにログインしようとする単純なコードで、ページの:私はタイプFirefoxDriverWebDriverInternetExplorerDriverまたはHtmlUnitDriverに送信する場合Selenium 2を使用してOperaでフレームベースのWebアプリケーションをテストする

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()メソッドを使って作業しましたが、それはうまくいきましたか?

関連する問題