目标是检查元素是否具有焦点。我偶然发现了这个解决方案。 但结果是错误。 这是与我正在做的类似的代码:
app.Query(x => x.Marked("AutomationId").Child(2).Invoke("IsFocused"))[0]
REPL 窗口中的输出是这样的:
{
error => [
],
receiverClass => [
],
receiverString => [
],
methodName => [
]
}
目标元素是 Xamarin.Forms.Entry,因此它具有属性IsFocused
。Android.Views.View
还包含属性IsFocused
。我试图将名称"IsFocused"更改为"getIsFocused","get_IsFocused"和"GetIsFocused",但结果是一样的。我错过了什么?
找出出了什么问题。
- 首先,
IsFocused
是属性(不是方法(,因此您需要使用方法Property
而不是Invoke
。 - 其次,获取属性后,您需要在同一查询
Value<>
方法中应用。 - 第三,它是
Focused
而不是IsFocused
,尽管在Xamarin和Android中的属性名称都是IsFocused
。
因此,在这种情况下,代码将如下所示:
app.Query(x => x.Marked("AutomationId").Child(2).Property("Focused").Value<bool>())[0]