我使用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中。
希望有人對此有經驗!
既然[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