当我在大量的TableViewCells上搜索时,EarlGrey冻结了一段时间

great_professional

我当时正在开发一个基本的iOS教程应用程序,并认为我也可以开始EarlGrey使用它学习一些内容。我正在自动化的测试具有以下流程-

  • 我有一个很大的UITableView,并用生成的一些随机单词预填充了它。这些可能会很长,我的TableView中可能有100多个单元格。

  • 在测试中,我随机选择一个生成的单词并在单元格中搜索它。每个单元格都有以下UI:

        |                                         |
        |   |Word|  |Word-Count| |  UIImage   |   |
        |                                         |
    

所以在EarlGrey-

- (void)setup {
    [super setup];
    GeneratorClass dataSource =
        [[GeneratorClass alloc] initWithRandomData];
    self.tableView.dataSource = dataSource;
    _randomSelectedValue = dataSource.randomValue;
}
- (void)testTableElementVisible {
    id<GREYMatcher> *cellMatcher = grey_allOf(grey_minimumVisiblePercent(0.0f), 
                                   grey_interactable(), 
                                   grey_isKindOfClass([UITableViewCell class]), 
                                   grey_text(_randomSelectedValue), nil);
    [[EarlGrey selectElementWithMatcher:cellMatcher] 
        asserWithMatcher:grey_sufficientlyVisible()];
    [[EarlGrey selectElementWithMatcher:cellMatcher]    
        performAction:grey_tap()];
}

但是,在Jenkins上,此测试需要花费很长时间才能运行,并且"Timeout (currently set to 30) occurred when looking for elements."显示为“失败”。屏幕被冻结,尽管在本地可以看到敲击,但我无法通过它。有什么方法可以加快此测试的速度,或者我在这里做错什么导致EarlGrey冻结了?

坎德普尔

难怪它花了这么长时间。您是grey_minimumVisiblePercent中的第一个匹配器grey_allOf这样做是按照指定的顺序在那些匹配器中运行ui层次结构中的每个元素,并且仅在匹配器之一失败或所有匹配器通过(即匹配)时才停止。为了避免出现此问题,您应该始终执行选择性最高的匹配器至选择性最低的匹配器。使用该逻辑grey_text(_randomSelectedValue)似乎是最有选择性的,因此将其用作第一个匹配器,然后按递减的顺序使用其他逻辑

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当我在大量的TableViewCells上搜索时,EarlGrey冻结了一段时间

来自分类Dev

为什么运行我的python脚本时powershell冻结了一段时间

来自分类Dev

为什么运行我的python脚本时powershell冻结了一段时间

来自分类Dev

当我加载数据库时,使用带有LINQtoSQL的.mdf数据库的WPF C#程序冻结了一段时间

来自分类Dev

Lubutnu 16.04冻结了一段时间

来自分类Dev

使用一段时间后,我的应用在滚动WebView时冻结,并说“无法锁定表面”

来自分类Dev

一段时间后,libgdx游戏开始冻结

来自分类Dev

一段时间后,Apache Ignite缓存冻结

来自分类Dev

SSH 会话在一段时间后冻结

来自分类Dev

Parallel.ForEach 一段时间后冻结

来自分类Dev

tkinter 窗口在一段时间后冻结

来自分类Dev

为什么一段时间后我的笔记本电脑突然冻结?

来自分类Dev

使用10.000项更新h:selectManyListbox时,Ajax渲染“冻结”一段时间

来自分类Dev

用10.000项更新h:selectManyListbox时,Ajax渲染“冻结”一段时间

来自分类Dev

Internet上的WOL成功了一段时间,但一段时间后失败了

来自分类Dev

为了防止我的网站过一段时间冻结,我该怎么办

来自分类Dev

我怎么可以停止一段时间?

来自分类Dev

我如何限制一段时间

来自分类Dev

为什么一段时间后我在使用ip6tables时无法连接到IPv6上的主机?

来自分类Dev

ubuntu 16.04-一段时间后变慢并冻结

来自分类Dev

JavaFX .Join()关键字导致应用冻结一段时间

来自分类Dev

一段时间后Arduino滚动文本程序冻结

来自分类Dev

Android LocationListener一段时间

来自分类Dev

一段时间后翻转

来自分类Dev

暂停CCNode一段时间

来自分类Dev

禁用按钮一段时间

来自分类Dev

一段时间之间的Grep

来自分类Dev

隐藏div一段时间

来自分类Dev

有一段时间了

Related 相关文章

  1. 1

    当我在大量的TableViewCells上搜索时,EarlGrey冻结了一段时间

  2. 2

    为什么运行我的python脚本时powershell冻结了一段时间

  3. 3

    为什么运行我的python脚本时powershell冻结了一段时间

  4. 4

    当我加载数据库时,使用带有LINQtoSQL的.mdf数据库的WPF C#程序冻结了一段时间

  5. 5

    Lubutnu 16.04冻结了一段时间

  6. 6

    使用一段时间后,我的应用在滚动WebView时冻结,并说“无法锁定表面”

  7. 7

    一段时间后,libgdx游戏开始冻结

  8. 8

    一段时间后,Apache Ignite缓存冻结

  9. 9

    SSH 会话在一段时间后冻结

  10. 10

    Parallel.ForEach 一段时间后冻结

  11. 11

    tkinter 窗口在一段时间后冻结

  12. 12

    为什么一段时间后我的笔记本电脑突然冻结?

  13. 13

    使用10.000项更新h:selectManyListbox时,Ajax渲染“冻结”一段时间

  14. 14

    用10.000项更新h:selectManyListbox时,Ajax渲染“冻结”一段时间

  15. 15

    Internet上的WOL成功了一段时间,但一段时间后失败了

  16. 16

    为了防止我的网站过一段时间冻结,我该怎么办

  17. 17

    我怎么可以停止一段时间?

  18. 18

    我如何限制一段时间

  19. 19

    为什么一段时间后我在使用ip6tables时无法连接到IPv6上的主机?

  20. 20

    ubuntu 16.04-一段时间后变慢并冻结

  21. 21

    JavaFX .Join()关键字导致应用冻结一段时间

  22. 22

    一段时间后Arduino滚动文本程序冻结

  23. 23

    Android LocationListener一段时间

  24. 24

    一段时间后翻转

  25. 25

    暂停CCNode一段时间

  26. 26

    禁用按钮一段时间

  27. 27

    一段时间之间的Grep

  28. 28

    隐藏div一段时间

  29. 29

    有一段时间了

热门标签

归档