1

我正在运行 iOS 测试,这些测试将针对 iPhone 和 iPad 运行。该应用程序在两种设备上略有不同,因此我需要一种方法来区分运行测试的是哪一个。我可以看到有一个 IDevice.IsPhone 或 IDevice.IsTablet 属性,但这些是私有的,我无法访问它们。

是否有一种简单的方法可以找出您正在使用的设备或访问界面上的属性的方法?

    [SetUp]
    public void BeforeEachTest()
    {
        app = AppInitializer.StartApp(platform);
    }

    public bool DeviceIsiPad()
    {
        var device = app.Device;
        if (device.IsTablet)
        {
            return true;
        }
        else {
            return false;
        }
    }
4

2 回答 2

1

您可以访问从 获取的类型的实例变量的IApp.Device.IsPhone(& ) 属性。.IsTabletIAppConfigureApp.iOS.StartApp()

[TestFixture]
public class Tests
{
    iOSApp app;

    [SetUp]
    public void BeforeEachTest()
    {
        app = ConfigureApp.iOS.StartApp();
    }

    [Test]
    public void ViewIsDisplayed()
    {
        AppResult[] results = null;
        if (app.Device.IsPhone)
        {
            results = app.WaitForElement(c => c.Child("UIView"));
        }
        if (app.Device.IsTablet)
        {
            results = app.WaitForElement(c => c.Child("UIView"));
        }
        app.Screenshot("First screen.");
        Assert.IsTrue(results.Any());
    }
}
于 2017-02-01T10:50:34.863 回答
0

我最终使用了以下内容。我收到一条警告,告诉我它已过时并使用 Device 但它仍然有效:

bool isPhone = ((Xamarin.UITest.iOS.iOSApp)app).Config.IsPhone;
于 2017-12-07T09:02:51.383 回答