2013-12-09 46 views
0

我正在使用BrowserStack评估自动硒测试的使用。我目前正在尝试更改在Android或iPad上的BrowserStack上模拟器上运行的设备的方向。我已经实现了IRotatable接口%的硒文档:通过BrowserStack中的Selenium测试更改方向

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 /会话/ 1d410f56479543a99410140bc39dc3d0d6d94c57 /方向”。对于Android功能的相同调用确实成功,但它似乎没有改变方向,因为之后我直接截屏并且设备仍处于肖像模式。

任何想法,如果它是完全可能通过自动化测试来改变方向,还是应该放弃并使用Screenshots API来做到这一点?

回答

0

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

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

希望我回答你的关注。

+0

感谢您的回复,我现在看到iPhone驱动程序不支持它。对于android来说,我将debug设置为true,并看到Set Orientation LANDSCAPE命令已发送并似乎被理解。但是我在改变方向之前和之后拍摄的截图是相同的,都是纵向截图。 – kkara

+0

哦..如果网站没有响应,就会发生这种情况(不会更改方向更改的尺寸,您是否可以ping网站? – dhimil