Selenium使用Java旋转iOS设备



我有一个问题似乎无法解决。我正在用Java编写一个自动测试应用程序,使用JUnit/SeleniumAppium在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,但我会选择第一个。

最新更新