Xamarin.forms Xamarin表单上的UITest将StyleId作为标签而不是ID写入
我正在尝试在Xamarin表单项目上设置UI测试 我按照指南将StyleId添加到我的username控件中Xamarin.forms Xamarin表单上的UITest将StyleId作为标签而不是ID写入,xamarin.forms,uitest,Xamarin.forms,Uitest,我正在尝试在Xamarin表单项目上设置UI测试 我按照指南将StyleId添加到我的username控件中 <Entry x:Name="username_name" StyleId="username_styleid" Text="{Binding Username, Mode=TwoWay}" IsEnabled="{Binding IsBusy, Converter={StaticResource ReverseBoolConver
<Entry x:Name="username_name"
StyleId="username_styleid"
Text="{Binding Username, Mode=TwoWay}"
IsEnabled="{Binding IsBusy, Converter={StaticResource ReverseBoolConverter}}"
Style="{StaticResource TextboxLight}"
Placeholder="{Binding UsernameLabel}" />
当我运行测试并使用REPL时,我可以看到StyleId已作为label属性而不是id属性输出
有没有人能做到这一点?使用StyleId很快就会被2.2.0淘汰 我还没有亲自测试过,但是 自动ID支持 Forms现在拥有对设置自动化的一流支持 用于Xamarin UITest或其他测试框架的标识符。 只需设置AutomationID属性就可以实现自动化 框架来查找控件并与之交互
不确定AutomationId转换成什么,但希望是一个ID。使用StyleId将很快被2.2.0淘汰 我还没有亲自测试过,但是 自动ID支持 Forms现在拥有对设置自动化的一流支持 用于Xamarin UITest或其他测试框架的标识符。 只需设置AutomationID属性就可以实现自动化 框架来查找控件并与之交互
不确定AutomationId转换成什么,但希望是一个按设计工作的ID。。在iOS上,您将看到值显示为
id
;在Android上,它将显示为标签
app.Query(c=>c.Marked(“username\u styleid”)
将跨平台工作。app.Query(“username\u styleid”)
的缩写形式也做同样的事情
标记
将在iOS上的id
字段中找到具有指定值的元素;Android上的标签
字段和其中一个上的as文本
。因此,在编写测试时,使其简单且有用的一个关键是使StyleID(或AutomationId)不同于应用程序中显示的文本。按设计工作。在iOS上,您将看到值显示为id
;在Android上,它将显示为标签
app.Query(c=>c.Marked(“username\u styleid”)
将跨平台工作。app.Query(“username\u styleid”)
的缩写形式也做同样的事情
标记
将在iOS上的id
字段中找到具有指定值的元素;Android上的标签
字段和其中一个上的as文本
。因此,在编写测试时,使其简单实用的一个关键是使StyleID(或AutomationId)不同于应用程序中显示的文本。谢谢Adam,好消息。我希望它能很好地工作,因为我们有大量的UI测试要编写。刚刚玩了2.2.04-pre2和新的AutomationId属性。不幸的是,它仍然将其作为标签输出,而不是一个idGood,因为上面确认了它。我正要再检查一遍,但我有一种感觉,这是一个标签。谢谢亚当,好消息。我希望它能很好地工作,因为我们有大量的UI测试要编写。刚刚玩了2.2.04-pre2和新的AutomationId属性。不幸的是,它仍然将其作为标签输出,而不是一个idGood,因为上面确认了它。我正要再检查一遍,但我有一种感觉,这是一个标签。谢谢格伦。我开始意识到这一点,但很高兴得到证实。谢谢格伦。我开始意识到这一点,但很高兴得到证实。
Forms.ViewInitialized += (sender, e) => {
if (!string.IsNullOrWhiteSpace(e.View.StyleId))
{
e.NativeView.ContentDescription = e.View.StyleId;
}
};