저는 Selenium 2b1을 사용하고 Firefox를 구동하는 좋은 결과를 얻었습니다 (둘 다 MacOS & Windows). IE와 Chrome에 대해 동일한 테스트를 실행하고 싶습니다. ChromeDriver에 대한 몇 가지 해결 방법을 추가 한 후에는 driver.switchTo(). frame (canvasName) 다음에 스크립트가 'return'Hello! " '인 경우에도 ChromeDriver와 InternetExplorerDriver가 모두 executeScript()에서 실패하는 것으로 나타났습니다. InternetExplorerDriver가 "JavaScript 오류"를보고하는 동안 ChromeDriver는 "페이지에 없었기 때문에 자바 스크립트를 실행할 수 없었습니다"라고보고합니다. ,대상이 IFrame에있을 때 ChromeWebDriver 및 InternetExplorerWebDriver에서 JavaScript를 호출하는 방법
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의 인스턴스를 작성하고 closure 매개 변수를 참조하는 랩퍼 인스턴스를 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