0

我使用Selenium 2b1並獲得了驅動Firefox的良好結果(包括MacOS & Windows)。我們希望針對IE和Chrome運行相同的測試。在爲ChromeDriver添加了一些解決方法之後,我發現即使腳本在driver.switchTo().frame(canvasName)之後是'return'Hello!「',ChromeDriver和InternetExplorerDriver在executeScript()中也會失敗。 ChromeDriver報告「不​​在頁面上,因此無法執行JavaScript」,而InternetExplorerDriver報告「JavaScript錯誤」。當目標位於IFrame時,如何從ChromeWebDriver和InternetExplorerWebDriver調用JavaScript

這裏的Groovy代碼:

selenium.switchTo().frame(canvasName) 

log.info("Canvas open. Waiting for Game to load."); 
waitFor(selenium, 30) { 
    selenium.findElement(By.id("Game")).click() 
} 

waitFor(selenium, 30) { 
    def eval = null 
    try { 
     eval = selenium.executeScript("return document.URL") 
     log.fine("executeScript returns [$eval]") 
    } catch(Exception e) { 
     log.fine("Exception from executeScript: $e.message") 
    } 
    return eval 
} 

變量,硒,具有RemoteWebDriver的實例。 waitFor方法創建一個WebDriverWait實例,並將引用閉包參數的包裝器實例作爲until參數傳遞。請注意,ID爲'Game'的元素僅存在於上面代碼中第一條語句選擇的IFrame中。

希望有人對此有經驗!

+0

既然[Se2b2](http://code.google.com/p/selenium/downloads/detail?name=selenium-server-2.0b2.zip&can=2&q=)已發佈,那麼很明顯,(剩下的)問題與ChromeDriver相同:隨着新版本的發佈,InternetExplorerDriver在相同的測試中像魔術一樣工作! 如果你有一個想法如何獲得比2b2更新的ChromeDriver,我會很感激! – John 2011-02-15 00:05:24

回答

0

問題是Selenium 2.0b1中InternetExplorerDriver和ChromeDriver版本的限制。 Selenium 2.0b2版本包含一個改進的InternetExplorerDriver,支持切換到IFrame並針對其DOM運行JavaScript。一個更強大的ChromeDriver還在後面。不幸的是,Beta 2 announcement沒有提及ChromeDriver的計劃(或支持Safari的可能性)。