gpt4 book ai didi

ios - Appium UITableview 减慢自动化

转载 作者:行者123 更新时间:2023-11-29 12:14:20 24 4
gpt4 key购买 nike

我正在尝试使用 Appium 自动化我的 native IOS 应用程序。我有一个包含 1000 多个元素的 TableView 。当我尝试使用 Appium 从 tableview 中选择一个单元格时,整个过程被延迟,我可以在 appium 控制台中看到 appium 引擎正在遍历整个 tableview 项目。

这是我使用的代码,

waitUntilElementBecomesClickable(element).click();


public WebElement waitUntilElementBecomesClickable(String element) throws Exception
{
return wait.until(ExpectedConditions.elementToBeClickable(By.name(element)));
}

有没有更好的方法从 tableview 中点击一个元素(我不想使用 XPath,因为我的数据是动态的)

谢谢

最佳答案

您需要了解元素层次结构以及 UI 元素可访问性。


元素层次结构的顶部是 UIATarget 类,它表示被测系统 (SUT) 的高级用户界面元素,即设备(或模拟器)以及 iOS 和您的应用程序在该设备上运行。出于测试目的,您的应用是最前面的应用(或目标应用),标识如下:

UIATarget.localTarget().frontMostApp();

要到达应用程序窗口,即应用程序的主窗口,您需要指定

UIATarget.localTarget().frontMostApp().mainWindow();

对于表格:

在应用的 TableView 数组中的第一个 TableView 中,因此您使用零索引 ([0]) 指定它,如下所示:

UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0];

在 TableView 中,每个项目都由一个不同的单独单元格表示。您可以用类似的方式指定单个单元格。例如,使用零索引 ([0]),您可以按如下方式指定第一个单元格:

UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[0];

这些单独的单元格元素中的每一个都可以设计为包含一条记录作为自定义子元素。在第一个单元格中,您可以使用这行代码按名称访问记录 f

UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[0].elements()["Record Name"];

通过这种方式,您只需给出单元格索引即可到达特定单元格。希望这是有用的,问候

For More Info Use This Tutorial

关于ios - Appium UITableview 减慢自动化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32373188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com