Я использую Selenium 2b1 и получаю хорошие результаты за рулем Firefox (как MacOS, так и Windows). Мы хотели бы запустить те же тесты с IE и Chrome. После добавления нескольких обходных путей для ChromeDriver я обнаружил, что ChromeDriver и InternetExplorerDriver завершаются с ошибкой в executeScript (), даже если скрипт возвращает «Hello!», После driver.switchTo (). Frame (canvasName). ChromeDriver сообщает, что «не было на странице, поэтому не удалось выполнить javascript», а InternetExplorerDriver сообщает «Ошибка 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
}
Переменная selenium имеет экземпляр RemoteWebDriver. Метод waitFor создает экземпляр WebDriverWait и передает экземпляр оболочки, ссылаясь на параметр closure в качестве параметра till. Обратите внимание, что элемент с идентификатором «Game» существует только в IFrame, который был выбран первым оператором в приведенном выше коде.
Надеюсь, у кого-то есть опыт с этим!