使用自动化ID改进自动化Syncfusion Xamarin.Forms控件

我们正在加紧为我们的2019 Vol 3版本中的Syncfusion Xamarin.Forms控件提供完整的自动化支持。在此文章中,我们将看到自动化Syncfusion Xamarin.Forms控件非常容易。

Essential Studio for Xamarin是全面的Xamarin.iOS、Xamarin.Android和Xamarin.Forms组件套包,包含最快的图表和网格。

Essential Studio for Xamarin正式版

介绍

创建Xamarin.Forms应用程序时,重要的是要提供一个可访问的应用程序,该应用程序应满足世界各地许多人的所有要求和所有经验。因此,在开发Xamarin.Forms应用程序时考虑此可访问性清单至关重要。Syncfusion了解各种人员和开发人员的可访问性需求,并且我们致力于提供无缝可访问的控件。作为其一部分,我们正在加紧为我们的2019 Vol 3版本中的Syncfusion Xamarin.Forms控件提供完整的自动化支持。

在此文章中,我们将看到自动化Syncfusion Xamarin.Forms控件非常容易。

Xamarin.Forms中的AutomationId是什么/strong>

AutomationId  是Element 类的属性,该属性获取或设置一个字符串值,允许自动化框架使用该值查找元素并与之交互。

如何将AutomationId设置为控件

由于AutomationId是元素的属性,因此Button之类的控件可以继承该属性。您可以将任何字符串分配给Button控件的AutomationId。下面的代码演示如何将AutomationId设置为Button控件。

<font style="vertical-align: inherit;"><font style="vertical-align: inherit;"><Button AutomationId =“完成按钮”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">       文字=“完成” /></font></font><font></font>

通过此代码,自动化框架将使用值“完成按钮”来查找按钮并与之交互。同样,我们的其他Syncfusion Xamarin.Forms控件(例如Cards、ListView、Busy Indicator和Rating)具有直接的AutomationId属性,可以与自动化框架进行交互。但是一些复杂的控件,例如DataGrid和Autocomplete,其中包含一些内部元素,这些元素无法公开访问自动化框架。为了解决该问题,在2019年第3卷发行版中,我们为可以与自动化框架进行交互的内部元素提供了唯一的AutomationId。让我们看看如何为Syncfusion Xamarin.Forms控件设置AutomationId。

如何为Syncfusion控件设置AutomationId

Syncfusion Xamarin.Forms控件及其元素将服从自动化框架并与之交互。我们为控件的所有可访问和可交互元素提供唯一的AutomationId。例如,在ComboBox中,自动化框架可以找到元素并与之交互,例如下拉按钮、清除按钮、输入字段、下拉项和令牌清除按钮。因此,我们提供了唯一的AutomationId,并且自动化框架可以轻松地与此AutomationId进行交互。以下屏幕截图说明了Xamarin.Forms ComboBox控件定义的AutomationId。

使用自动化ID改进自动化Syncfusion Xamarin.Forms控件

用户将期望所有可交互元素具有唯一的AutomationId。为了保持唯一性,我们根据用户指定的控件的AutomationId保留AutomationId的内部元素。每当控件的AutomationId更改时,内部元素都会根据控件的AutomationId更新其AutomationId。

例如,如果我们将ComboBox的AutomationId设置为“SfComboBox.AutomationId =” Employee ComboBox”,则自动化框架将与下拉按钮交互为“Employee ComboBox DropDown Button”。

使用自动化ID改进自动化Syncfusion Xamarin.Forms控件

它如何在自动化框架中工作/strong>

让我们看看Xamarin.UITest 自动化框架如何与Xamarin.Forms ComboBox交互。在这里,我有一个模块来使用两个Xamarin.Forms ComboBoxes包含人员列表的团队来选择两个团队。现在,我通过使用ComboBox的唯一AutomationId及其内部元素来选择两个团队来使模块自动化。以下代码段对此进行了演示。

具有两个组合框的模块用于选择两个团队。

<font style="vertical-align: inherit;"><font style="vertical-align: inherit;"><StackLayout></font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">   <标签文本= “A队”/></font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">   <combobox:SfComboBox AutomationId =“ TeamA”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">                        DisplayMemberPath =“名称”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">                        ImageMemberPath =“图像”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">                        MultiSelectMode =“令牌”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">                        DataSource =“ {Binding EmployeeCollection}” /></font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">   <Label Text =“团队B”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">          Margin =“ 0,25,0,0” /></font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">   <combobox:SfComboBox AutomationId =“ TeamB”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">                        DisplayMemberPath =“名称”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">                        ImageMemberPath =“图像”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">                        MultiSelectMode =“令牌”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">                        DataSource =“ {Binding EmployeeCollection}” /></font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">   <Button Margin =“ 0,100,0,0”</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">           文字=“ START” /></font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;"></ StackLayout></font></font>

使用Xamarin.UITest命令与Xamarin.Forms ComboBox进行交互。

<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">App.Tap(“ TeamA下拉按钮”); </font><font style="vertical-align: inherit;">Thread.Sleep(200);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">App.Tap(“ John”); </font><font style="vertical-align: inherit;">Thread.Sleep(200);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">App.Tap(“ TeamA下拉按钮”);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">App.Tap(“ Jerome”); </font><font style="vertical-align: inherit;">Thread.Sleep(200);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">App.Tap(“ TeamA下拉按钮”); </font><font style="vertical-align: inherit;">Thread.Sleep(200);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">App.Tap(“维多利亚”); </font><font style="vertical-align: inherit;">Thread.Sleep(200);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">App.ScrollTo(“ TeamA John”); </font><font style="vertical-align: inherit;">Thread.Sleep(200);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">App.Tap(“ TeamA John Token关闭按钮”); </font><font style="vertical-align: inherit;">Thread.Sleep(200);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">App.Tap(“ TeamB下拉按钮”);</font></font><font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">App.Tap(“ Jessica”); </font><font style="vertical-align: inherit;">Thread.Sleep(200);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">App.Tap(“ TeamB下拉按钮”); </font><font style="vertical-align: inherit;">Thread.Sleep(200);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">App.Tap(“ John”); </font><font style="vertical-align: inherit;">Thread.Sleep(200);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">App.Tap(“ TeamB下拉按钮”); </font><font style="vertical-align: inherit;">Thread.Sleep(200);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">App.Tap(“ Justin”); </font><font style="vertical-align: inherit;">Thread.Sleep(200);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">App.ScrollTo(“ TeamB Jessica”); </font><font style="vertical-align: inherit;">Thread.Sleep(200);</font></font><font></font><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">App.Tap(“ TeamB Jessica令牌关闭按钮”);</font></font><font></font>

使用自动化ID改进自动化Syncfusion Xamarin.Forms控件

结论

在此文章中,我们介绍了支持AutomationId的Syncfusion Xamarin.Forms控件的新版本。我们仍在寻找改善自动化支持以自动化我们的UI控件的可能性。我们邀请您下载免费评估版,以查看所有Xamarin.Forms控件的使用情况。


想要购买该产品正版授权,或了解更多产品信息请点击“咨询在线客服”

850×682.png

标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年10月4日
下一篇 2019年10月4日

相关推荐

发表回复

登录后才能评论