从具有自动化 ID 的列表中获取元素

Get an element from a list with automation id

我有一个列表视图,我想从中获取第二个元素并使用 uitest 点击它,我有列表视图的 AutomationId ("ReportsList")。 有人可以给我写一个可以帮助我的函数吗?

基本上,此代码有效,但是当 xaml 更新时,您还必须更新查询。

app.ScrollTo(app.Query(q => q.Id("ListViewAutomationId").Child(0).Child(0)).First().Label)) 

child at query 的用法根据 listview 的项目模板而变化。你可以在Repl中测试它。

另一种方法是将automationId添加到listview的数据源中,然后绑定到datatemplate中:

<DataTemplate>
    <ViewCell>
        <Grid AutomationId="{Binding YourAutomationIdFromDataSource}">

此后,在ui测试项目中:

App.ScrollTo("itemAutomationId")
App.TapAndWait("itemAutomationId")

我知道这种方法并不完全干净,但我花了很多时间在另一种方法上,最后我的最后一种方法效果很好。