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]