首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能将RemoteWebDriver转换为org.openqa.selenium.TakesScreenshot (Java)

不能将RemoteWebDriver转换为org.openqa.selenium.TakesScreenshot (Java)
EN

Stack Overflow用户
提问于 2017-02-13 18:00:41
回答 2查看 6.6K关注 0票数 1

我正试着用RemoteWebDriver of Winium.Desktop拍一张截图。由于RemoteWebDriver没有实现TakesScreenshot,所以我将对象声明为WebDriver。

代码语言:javascript
复制
WebDriver driver = new RemoteWebDriver(new URL(remoteUrl), desiredCapabilities);

WebDriver augmentedDriver = new Augmenter().augment(driver);
File screenshot = ((TakesScreenshot) augmentedDriver).getScreenshotAs(OutputType.FILE);

当我尝试将其转换为get: java.lang.ClassCastException: org.openqa.selenium.remote.RemoteWebDriver时,不能将其转换为org.openqa.selenium.TakesScreenshot

当我打印驱动程序类名时,我得到了RemoteWebDriver,尽管它被声明为WebDriver。

我遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-14 13:09:40

RemoteWebDriver确实实现了TakesScreenshotWebDriver没有实现。所以也许你可以摆脱这个角色,它会解决你的问题,尽管你得到这个异常是很奇怪的。我猜想这可能是因为RemoteWebDriver的实现还没有完成。

但是,如果在运行时尝试使用getClass()检查类名,它将解析为实例的运行时类,这就是为什么您得到RemoteWebDriver.

所以在我看来,这就像是一个缺陷

票数 1
EN

Stack Overflow用户

发布于 2017-02-14 05:46:41

RemoteWebDriver类不实现TakesScreenshot类。它与其他接口一起实现ITakesScreenshot接口,该接口具有GetScreenshot方法。因此,将类型转换更改为ITakeScreenshot.

我希望这对你有用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42210510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档