翻譯|使用教程|編輯:莫成敏|2019-11-07 10:26:03.447|閱讀 229 次
概述:我們正在加緊為我們的2019 Vol 3版本中的Syncfusion Xamarin.Forms控件提供完整的自動化支持。在此文章中,我們將看到自動化Syncfusion Xamarin.Forms控件非常容易。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
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是什么?
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。
用戶將期望所有可交互元素具有唯一的AutomationId。為了保持唯一性,我們根據用戶指定的控件的AutomationId保留AutomationId的內部元素。每當控件的AutomationId更改時,內部元素都會根據控件的AutomationId更新其AutomationId。
例如,如果我們將ComboBox的AutomationId設置為“SfComboBox.AutomationId =” Employee ComboBox”,則自動化框架將與下拉按鈕交互為“Employee ComboBox DropDown Button”。
它如何在自動化框架中工作?
讓我們看看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>
結論
在此文章中,我們介紹了支持AutomationId的Syncfusion Xamarin.Forms控件的新版本。我們仍在尋找改善自動化支持以自動化我們的UI控件的可能性。我們邀請您下載免費評估版,以查看所有Xamarin.Forms控件的使用情況。
想要購買該產品正版授權,或了解更多產品信息請點擊
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: