Grid と RemoteWebDriver を使用して Safari からスクリーンショットを取得しようとしています。私は次のアプローチを試しました:
以下のコードを使用します。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
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
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 を使用しています。