Xamarin UI 测试。取控件的背景色ios
Xamarin UI Test. Take control's background color ios
我是 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());
但它 returns 我反对星号字符串 "******"
或在使用 "Value"
的情况下崩溃。
请告诉我我做错了什么?
此外,对于任何错误的请求,我都会收到“*****”,例如
var result = app.Query(x => x.Marked("Mark").Invoke("TextColorAAAAAAA"));
result = {object[1]} [0] "*****"
所以 xamarin 不知道命令 "Background"。
更新
看起来 xamarin 一直在等待来自小信的命令 "backgroundColor"。但这并不能解决问题。现在它 returns 空对象,甚至没有默认值...
[0] {
red => [
],
alpha => [
],
type => [
],
blue => [
],
green => [
]
}
尝试像这样使用 UIColor
的私有字段 styleString
:
var color = app.Query(c => c.Marked("someText").Invoke("backgroundColor").Invoke("styleString"))[0];
您应该得到一个字符串 rgb 值:rgb(1,2,3)
这样,您只需解析字符串即可从中获取 R、G 和 B 元素。
我知道这是旧的,但如果有人需要相同的 Xamarin Android,您可以执行以下操作:
int colorValue = Convert.ToInt32(App.Query(x => x.Class("LinearLayout").Invoke("getBackground").Invoke("getColor"))[0]);
var color = Color.FromArgb(colorValue);
return color;
我是 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());
但它 returns 我反对星号字符串 "******"
或在使用 "Value"
的情况下崩溃。
请告诉我我做错了什么?
此外,对于任何错误的请求,我都会收到“*****”,例如
var result = app.Query(x => x.Marked("Mark").Invoke("TextColorAAAAAAA"));
result = {object[1]} [0] "*****"
所以 xamarin 不知道命令 "Background"。
更新
看起来 xamarin 一直在等待来自小信的命令 "backgroundColor"。但这并不能解决问题。现在它 returns 空对象,甚至没有默认值...
[0] {
red => [
],
alpha => [
],
type => [
],
blue => [
],
green => [
]
}
尝试像这样使用 UIColor
的私有字段 styleString
:
var color = app.Query(c => c.Marked("someText").Invoke("backgroundColor").Invoke("styleString"))[0];
您应该得到一个字符串 rgb 值:rgb(1,2,3)
这样,您只需解析字符串即可从中获取 R、G 和 B 元素。
我知道这是旧的,但如果有人需要相同的 Xamarin Android,您可以执行以下操作:
int colorValue = Convert.ToInt32(App.Query(x => x.Class("LinearLayout").Invoke("getBackground").Invoke("getColor"))[0]);
var color = Color.FromArgb(colorValue);
return color;