Xamarin UI测试。控制的背景颜色ios

时间:2017-08-25 09:25:29

标签: xamarin xamarin.ios automated-tests ui-testing

我是xamarin UI测试的新手。 我需要获得UIView的颜色。据我所知,我需要使用Invoke方法,因为没有其他测试方法来做到这一点。我尝试通过

之类的颜色来获取颜色
var color = app.Query(c => c.Marked("someText").Invoke("BackgroundColor"));

var color = app.Query(c => c.Marked("someText").Invoke("BackgroundColor").Invoke("CGColor").Value());

但是它返回了我的对象只有星号"******"或者在"Value"使用时崩溃。 请告诉我我做错了什么?

此外,对于任何错误的请求,我都会收到“*****”,例如

var result = app.Query(x => x.Marked("Mark").Invoke("TextColorAAAAAAA"));
result = {object[1]}    [0] "*****"

所以xamarin不知道命令“背景”。

更新

看起来所有的时间xamarin都在等待命令“backgroundColor”,从小写字母开始。但这并不能解决问题。现在它返回空对象,甚至没有默认值......

[0] {
    red => [

    ],
    alpha => [

    ],
    type => [

    ],
    blue => [

    ],
    green => [

    ]
}

2 个答案:

答案 0 :(得分:1)

尝试使用styleString的私人字段UIColor,如下所示:

var color = app.Query(c => c.Marked("someText").Invoke("backgroundColor").Invoke("styleString"))[0];

您应该获得字符串rgb值:rgb(1,2,3)

有了它,你可以解析字符串以获取R,G和B元素。

答案 1 :(得分:1)

我知道这已经很老了,但是如果有人需要Xamarin Android上的东西,可以执行以下操作:

int colorValue = Convert.ToInt32(App.Query(x => x.Class("LinearLayout").Invoke("getBackground").Invoke("getColor"))[0]);
var color = Color.FromArgb(colorValue);
return color;