gpt4 book ai didi

xcode - 如何在 Xcode 9 中拖放用于 xcode-ui-testing 的元素

转载 作者:行者123 更新时间:2023-12-02 03:43:08 25 4
gpt4 key购买 nike

在 Xcode 8 和 swift 3.2 中开发的 ios 应用程序的 UI 测试。

将 Xcode 版本 8 升级到 9 后,我遇到了处理拖放的问题

我想拖动一个元素[即按钮] 并将其拖放到另一个元素[即在主页上]

对于 Xcode 8,我使用以下方法实现了它:

let sourceElement = app.buttons["Video_Button"]

let destElement = app.scrollViews.scrollViews.images.element(boundBy: 0)

sourceElement.press(forDuration: 0.5, thenDragTo: destElement)

但是上面的代码在 Xcode 9 和 Swift 3.2 中不起作用。

最佳答案

实际上问题是在 iOS 11.0 中。

在 iOS 11.0 中,某些分层元素无法点击按下长按

您必须使用元素中心点才能点击按下长按

** 问题的解决方案代码片段粘贴在下面。

首先创建一个扩展方法,用于按下元素的中心并将该元素拖动到目标元素中心。

扩展方法如下

extension XCUIElement {

func dragAndDropUsingCenterPos(forDuration duration: TimeInterval,
thenDragTo destElement: XCUIElement) {

let sourceCoordinate: XCUICoordinate = self.coordinate(withNormalizedOffset: CGVector(dx:0.5, dy:0.5))

let destCorodinate: XCUICoordinate = destElement.coordinate(withNormalizedOffset: CGVector(dx:0.5, dy:0.5))

sourceCoordinate.press(forDuration: duration, thenDragTo: destCorodinate)
}

}

然后调用如下扩展方法

 sourceElement.dragAndDropUsingCenterPos(forDuration: 0.5, thenDragTo: destElement)

希望能解决您的问题。让我知道您的反馈。

关于xcode - 如何在 Xcode 9 中拖放用于 xcode-ui-testing 的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47813639/

25 4 0
文章推荐: api - 统一写入过滤器API
文章推荐: c++ - 当引用的变量从外部更改时,使用对 const 的引用是否安全?
文章推荐: c# - 开拓者 : how to bind Nullable object to