2013-12-09 20 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