Selenium用Java旋转iOS设备

时间:2014-04-28 04:51:00

标签: java selenium selenium-webdriver mobile-safari appium

我有一个似乎无法解决的问题。我正在使用JUnit/SeleniumAppium在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线协议?

非常感谢任何帮助。

谢谢!

2 个答案:

答案 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一起执行,但我会选择第一个。