セレングリッド2を使用してスクリーンショットを撮ることは可能ですか?RemoteWebDriverクラスは、TakesScreenshotインターフェイスを実装していません。
マーク
セレングリッド2を使用してスクリーンショットを撮ることは可能ですか?RemoteWebDriverクラスは、TakesScreenshotインターフェイスを実装していません。
マーク
RemoteWebDriver
スクリーンショット機能を使用する前に、を拡張する必要があります。すでにわかっていることは間違いありませんが、拡張せずにキャストしようとすると、例外が発生します。
WebDriver driver = new RemoteWebDriver( ... );
driver = new Augmenter().augment( driver );
( (TakesScreenshot)driver ).getScreenshotAs( ... );
RemoteWebDriverを拡張し、Javaで以下のようなTakeScreenshotインターフェイスを実装するラッパークラスを作成する必要があります。
public class ScreenShotRemoteWebDriver extends RemoteWebDriver implements TakesScreenshot
{
public ScreenShotRemoteWebDriver(URL url, DesiredCapabilities dc) {
super(url, dc);
}
@Override
public <X> X getScreenshotAs(OutputType<X> target) throws WebDriverException {
if ((Boolean)getCapabilities().getCapability(CapabilityType.TAKES_SCREENSHOT)) {
return target.convertFromBase64Png(execute(DriverCommand.SCREENSHOT).getValue().toString());
}
return null;
}
}