菜鸟教程小白 发表于 2022-12-12 13:53:43

ios - Xcode UI 测试 Collection View 单元格在 iOS 11 上变得不可点击


                                            <p><p>我们在 Xcode UI 测试中使用这段代码来模拟点击 <code>UICollectionView</code> 的第一个单元格:</p>

<pre><code>XCUIElementQuery *query = ;
XCUIElement *collectionView = ;
XCUIElement *targetCell = ;
if (targetCell.hittable) {
    ;
}
</code></pre>

<p>这在 iOS 10 上运行良好,但在 iOS 11 上停止运行。无论如何,<code>targetCell</code> 永远不会<code>hittable</code>。在 <code>XCUIElement *targetCell = </code> 之前添加 <code>sleep(10)</code> 没有帮助。</p>

<p>我见过其他地方提到的 hacky 解决方案,例如 </p>

<pre><code>func forceTapElement() {   
    if self.isHittable {   
      self.tap()   
    } else {   
      var coordinate: XCUICoordinate = self.coordinateWithNormalizedOffset(CGVectorMake(0.0, 0.0))   
      coordinate.tap()   
    }
}
</code></pre>

<p>但这看起来不是很干净。实现这一目标的最简洁方法是什么?</p>

<hr/>

<p><em>更新</em>:如果我在不检查<code>hittable</code> 的情况下尝试点击它,我会收到此错误:</p>

<blockquote>
<p>error: Error -25204 performing AXAction 2003 on elementpid: 43616, elementOrHash.elementID: 4882574576.240</p>
</blockquote></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>事实证明,在 <em>iOS 11</em> 上,<code>isAccessibilityElement</code> 在我们自定义的 <em>collection view cells</em> 上是<code>NO</code>(奇怪的是,在 <em>iOS 10</em> 上是 <code>YES</code>)。将其显式设置为 <code>YES</code> 解决了这个问题。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - Xcode UI 测试 Collection View 单元格在 iOS 11 上变得不可点击,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/46819807/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/46819807/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - Xcode UI 测试 Collection View 单元格在 iOS 11 上变得不可点击