2012-01-09 91 views
0

我正在使用Selenium 2測試基於框架的Web應用程序。這是試圖登錄用戶的簡單代碼,並且在結果頁面上切換到內容框架使用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"); 

這正常工作,如果我在FirefoxDriver類型,InternetExplorerDriverHtmlUnitDriverWebDriver派:頁面。但是,如果驅動程序是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。 我浪費了幾個小時,並沒有找到這個答案。 有人曾與OperaTo的switchTo().frame()方法,它的工作?

相關問題