从应用调用方法.xamarin.uitest 中的查询返回错误



目标是检查元素是否具有焦点。我偶然发现了这个解决方案。 但结果是错误。 这是与我正在做的类似的代码:

app.Query(x => x.Marked("AutomationId").Child(2).Invoke("IsFocused"))[0]

REPL 窗口中的输出是这样的:

{
error => [
],
receiverClass => [
],
receiverString => [
],
methodName => [
]
}

目标元素是 Xamarin.Forms.Entry,因此它具有属性IsFocusedAndroid.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]

最新更新