我有一个问题似乎无法解决。我正在用Java编写一个自动测试应用程序,使用JUnit/Selenium
和Appium
在iOS模拟器(Mobile Safari
)中测试网站。
在这个自动化测试应用程序中,我想运行一些测试,旋转设备并运行另一组测试。除了旋转部件外,我的所有部件都正常工作。
我发现了以下关于如何旋转iOS设备的线程,其中有人建议使用以下Java代码:
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有线协议?
非常感谢您的帮助。
谢谢!
好吧,所以我终于解决了这个问题。令人恼火的是,经过数小时的搜索和尝试,这是一个非常简单的解决方案。
所需要的只是以下能力:
cap.setCapability("rotatable", true);
然后使用以下代码旋转设备:
WebDriver augmentedDriver = new Augmenter().augment(driver);
((Rotatable)augmentedDriver).rotate(ScreenOrientation.LANDSCAPE);
是的!问题解决了!
Rotation未实现,此请求标记为"不会修复"。请在此处查看。据我所知,这是因为旋转屏幕已经在Appium中实现了,所以是的,请查看Appium API以获得解决方案。或者,您可以尝试与target.setDeviceOrientation
一起执行javascript,但我会选择第一个。