我正在使用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吗?
答案 0 :(得分:0)
正如我所见,BrowserStack在iOS模拟器上运行iPhone驱动程序进行selenium测试。由于驱动程序已按照selenium站点弃用[参考:https://code.google.com/p/selenium/wiki/IPhoneDriver],因此在selenium中支持iOS的命令非常有限。方向是驱动程序本身不支持的方向。 BrowserStack正在开发该功能以提供支持,并将在完成后立即更新。
对于你的android问题。您可以通过将“browserstack.debug”功能传递为“true”来在调试模式下运行测试。这将为您提供完整的桌面截图,并向您显示命令之前和之后的方向。如果您尝试打开的网站没有响应,您可能会看到横向和纵向屏幕截图没有区别。
希望我回答你的疑虑。