Xamarin UI 测试。获取控件的背景颜色 ios

Mid*_*eD. 2 automated-tests ui-testing xamarin.ios xamarin

我是 xamarin UI 测试的新手。我需要获取 UIView 的颜色。据我了解,我需要使用 Invoke 方法,因为没有其他测试方法可以做到这一点。我尝试通过类似的东西来取色

var color = app.Query(c => c.Marked("someText").Invoke("BackgroundColor"));
Run Code Online (Sandbox Code Playgroud)

或者

var color = app.Query(c => c.Marked("someText").Invoke("BackgroundColor").Invoke("CGColor").Value());
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

更新

看起来 xamarin 一直在等待命令“backgroundColor”,来自小写字母。但这并不能解决问题。现在它返回空对象,甚至没有默认值......

[0] {
    red => [

    ],
    alpha => [

    ],
    type => [

    ],
    blue => [

    ],
    green => [

    ]
}
Run Code Online (Sandbox Code Playgroud)

Tim*_*äki 5

尝试使用私有字段styleStringUIColor是这样的:

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

你应该得到一个字符串 rgb 值: rgb(1,2,3)

有了这个,您可以只解析字符串以从中获取 R、G 和 B 元素。