通过BrowserStack中的Selenium测试更改方向

时间:2013-12-09 14:36:46

标签: selenium browserstack

我正在使用BrowserStack评估自动化硒测试的使用。我目前正在尝试在BrowserStack(Android或iPad)上更改在模拟器上运行的设备的方向。我根据Selenium文档实现了IRotatable接口:

public class RotatableRemoteWebDriver : RemoteWebDriver, IRotatable
{
    public RotatableRemoteWebDriver(Uri uri, DesiredCapabilities dc, ScreenOrientation initialOrientation = ScreenOrientation.Portrait): base(uri, dc)
    {
        this.Orientation = initialOrientation;
    }

    public ScreenOrientation Orientation
    {
        get
        {
            var orientationResponse = this.Execute(DriverCommand.GetOrientation, null);
            return (ScreenOrientation)Enum.Parse(typeof(ScreenOrientation), orientationResponse.Value.ToString(), true);
        }
        set
        {
            var response = this.Execute(DriverCommand.SetOrientation, new Dictionary<string, object>() { { "orientation", value.ToString().ToUpperInvariant() } });
        }
    }
}

当我尝试将其与iPad功能一起使用时,我直接得到一个异常,说“资源的无效方法:POST / session / 1d410f56479543a99410140bc39dc3d0d6d94c57 / orientation”。 Android功能的相同调用确实成功,但由于我之后直接截取屏幕并且设备仍处于纵向模式,因此它似乎没有改变方向。

是否有可能通过自动化测试改变方向,或者我应该放弃并使用屏幕截图API吗?

1 个答案:

答案 0 :(得分:0)

正如我所见,BrowserStack在iOS模拟器上运行iPhone驱动程序进行selenium测试。由于驱动程序已按照selenium站点弃用[参考:https://code.google.com/p/selenium/wiki/IPhoneDriver],因此在selenium中支持iOS的命令非常有限。方向是驱动程序本身不支持的方向。 BrowserStack正在开发该功能以提供支持,并将在完成后立即更新。

对于你的android问题。您可以通过将“browserstack.debug”功能传递为“true”来在调试模式下运行测试。这将为您提供完整的桌面截图,并向您显示命令之前和之后的方向。如果您尝试打开的网站没有响应,您可能会看到横向和纵向屏幕截图没有区别。

希望我回答你的疑虑。