我有一个似乎无法解决的问题。我正在使用JUnit/Selenium
和Appium
在Java中编写自动化测试应用程序来测试iOS模拟器中的网站(Mobile Safari
)。
在这个自动化测试应用程序中,我想运行一些测试,旋转设备并运行另一组测试。除旋转件外,我的一切都正常工作。
我找到了以下thread关于如何使用以下Java代码轮换iOS设备的信息:
WebDriver augmentedDriver = new Augmenter().augment(driver);
((Rotatable)augmentedDriver).rotate(ScreenOrientation.LANDSCAPE);
但是我得到了以下强制转换异常:
java.lang.ClassCastException: org.openqa.selenium.remote.RemoteWebDriver cannot be
cast to org.openqa.selenium.Rotatable
有没有其他人遇到此问题并知道修复/解决方法?也许使用Appium的JSON线协议?
非常感谢任何帮助。
谢谢!
答案 0 :(得分:2)
好的,所以我终于找到了问题。令人烦恼的是,经过数小时的搜索和尝试不同的事情,这是一个非常简单的解决方案。
所需要的只是以下能力:
cap.setCapability("rotatable", true);
然后使用以下代码旋转设备:
WebDriver augmentedDriver = new Augmenter().augment(driver);
((Rotatable)augmentedDriver).rotate(ScreenOrientation.LANDSCAPE);
是啊!问题解决了!
答案 1 :(得分:0)
未实施轮换,此请求标记为"无法解决"。检查here。
据我所知,这是因为旋转屏幕已在Appium中实现,所以是的,请查看Appium API以获得解决方案。或者你可以尝试执行javascript,与target.setDeviceOrientation
一起执行,但我会选择第一个。