0

私はSelenium2b1を使用していて、Firefox(MacOSとWindowsの両方)を駆動して良い結果を得ています。IEとChromeに対して同じテストを実行したいと思います。ChromeDriverのいくつかの回避策を追加した後、スクリプトが'return "Hello!"'であっても、driver.switchTo()。frame(canvasName)の後にChromeDriverとInternetExplorerDriverの両方がexecuteScript()で失敗することがわかりました。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のインスタンスを作成し、クロージャーパラメーターをuntilパラメーターとして参照するラッパーインスタンスを渡します。IDが「Game」の要素は、上記のコードの最初のステートメントで選択されたIFrameにのみ存在することに注意してください。

誰かがこれを経験したことを願っています!

4

1 に答える 1

0

問題は、Selenium2.0b1のInternetExplorerDriverバージョンとChromeDriverバージョンの制限です。Selenium 2.0b2リリースには、IFrameへの切り替えとそのDOMに対するJavaScriptの実行をサポートする改良されたInternetExplorerDriverが含まれています。より堅牢なChromeDriverはまだ登場していません。残念ながら、Beta 2の発表では、ChromeDriverの計画(またはSafariのサポートの可能性)については言及されていません。

于 2011-02-19T16:34:14.150 に答える