3

Grid と RemoteWebDriver を使用して Safari からスクリーンショットを取得しようとしています。私は次のアプローチを試しました:

  1. 以下のコードを使用します。Safari を除くすべてのブラウザで動作します。BASE64 文字列を返すことも試みましたが、うまくいきませんでした。

    WebDriver augmentedDriver = new Augmenter().augment(driver);
    File source = ((TakesScreenshot)augmentedDriver).getScreenshotAs(OutputType.FILE);
    FileUtils.copyFile(source, new File("screenshot.png"));
    

    Exception: org.openqa.selenium.WebDriverException

  2. WebDriverBackedSelenium を使用します。これは例外をスローします。

    a.

    Selenium sel = new WebDriverBackedSelenium(driver, driver.getCurrentUrl());
    sel.captureScreenshot(filename);
    

    Exception: java.lang.UnsupportedOperationException: captureScreenshot

    b.

    Selenium sel = new WebDriverBackedSelenium(driver, driver.getCurrentUrl());
    sel.captureScreenshotToString();
    

    Exception: java.lang.UnsupportedOperationException: WebDriver does not implement TakeScreenshot

  3. MACでスクリーンショットを撮るキーシーケンス(コマンド+シフト+ 3)を使用して送信しようとしましsendKeys(Keys.chord(Keys.COMMAND, Keys.SHIFT, "3"))たがKeys.COMMAND、修飾キーとは見なされないため、これも機能しませんでした。

いくつかの調査の後、私は以下の問題に遭遇しました: http://code.google.com/p/selenium/issues/detail?id=4203

問題を修正すると思われるこのリビジョンも見ましたが、これを実装する方法がわかりません http://code.google.com/p/selenium/source/detail?r=17731

これについて何か助けていただければ幸いです。MAC、Safari 5.1.7、およびセレン 2.25 を使用しています。

4

1 に答える 1

0

今後の参考のために: これはSelenium 2.26 で修正されたようです

于 2013-03-21T18:34:27.690 に答える