Xcode UITesting - 如何移动UISlider?

时间:2016-02-09 17:25:10

标签: ios swift xcode-ui-testing

有没有办法在Xcode中的UISlider目标下移动UITests?我真的需要从代码中移动它。有可能吗?

3 个答案:

答案 0 :(得分:7)

  1. 获取滑块:

    let app = XCUIApplication()
    let timeSlider = app.sliders["timeSlider"]
    
  2. 调整其值:

    timeSlider.adjustToNormalizedSliderPosition(0.9)
    

答案 1 :(得分:1)

我根据this回答进行了此扩展,以修复adjustToNormalizedSliderPosition问题。

import XCTest

extension XCUIElement {

    open func adjust(toNormalizedSliderValue normalizedSliderValue: CGFloat) {
        let start = coordinate(withNormalizedOffset: CGVector(dx: 0.0, dy: 0.0))
        let end = coordinate(withNormalizedOffset: CGVector(dx: normalizedSliderValue, dy: 0.0))
        start.press(forDuration: 0.05, thenDragTo: end)
    }

}

然后你只需要拨打电话:

app.sliders["Your Slider Identifier"].adjust(toNormalizedSliderValue: 0.5)

在这里您可以找到一些有关Xcode UITesting的有用提示:

https://github.com/joemasilotti/UI-Testing-Cheat-Sheet

答案 2 :(得分:0)

我无法让adjustToNormalizedSliderPosition使用我应用的滑块。我看到有些人在网上发帖说它也没有为他们工作。 它在这里为其他人工作吗?

调整滑块的一个不太有用的方法是找到元素,按一段时间,然后拖动到另一个元素:

slider.pressForDuration(duration: 0.05, thenDragToElement: anotherElement)