有没有办法在Xcode中将UISlider移动到UITests目标下?我真的需要把它从代码中移出来。这可能吗?
UISlider
UITests
5cg8jx4n1#
1.获取您的滑块:
let app = XCUIApplication() let timeSlider = app.sliders["timeSlider"]
1.调整其值:
timeSlider.adjustToNormalizedSliderPosition(0.9)
dgiusagp2#
我基于this answer做了这个扩展来修复adjustToNormalizedSliderPosition问题。
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
nszi6y053#
我无法让adjustToNormalizedSliderPosition与我的应用程序的滑块一起工作。我看到一些人在网上发帖说这对他们也不起作用。在这里为别人工作?调整滑块的一种不太有用的方法是找到元素,按住一段时间,然后拖动到另一个元素:
slider.pressForDuration(duration: 0.05, thenDragToElement: anotherElement)
h79rfbju4#
Swift 4.2+
@bartłomiej-semańczyk的回答,修改了一点像这样:1.获取您的滑块:
timeSlider.adjust(toNormalizedSliderPosition: 0.9)
**注:**数字为CGFloat,介于0和1之间。如果你的UISlider最小值和最大值不是0到1,你必须先像这样转换它:
CGFloat
let numberBetween01 = CGFloat((requestedVal - UISlider.minimumValue ) / UISlider.maximumValue - UISlider.minimumValue))
uemypmqf5#
如何将UISlider移动到右侧️
static func moveSliderToRight(element: XCUIElement){ _ = element.waitForExistence(timeout: 10) element.adjust(toNormalizedSliderPosition: 1) }
如何将UISlider移动到左侧️
static func moveSliderToRight(element: XCUIElement){ _ = element.waitForExistence(timeout: 10) element.adjust(toNormalizedSliderPosition: 0) }
5条答案
按热度按时间5cg8jx4n1#
1.获取您的滑块:
1.调整其值:
dgiusagp2#
我基于this answer做了这个扩展来修复
adjustToNormalizedSliderPosition
问题。你只需要打电话:
在这里,你可以找到一些其他有用的Xcode UITesting技巧:
https://github.com/joemasilotti/UI-Testing-Cheat-Sheet
nszi6y053#
我无法让
adjustToNormalizedSliderPosition
与我的应用程序的滑块一起工作。我看到一些人在网上发帖说这对他们也不起作用。在这里为别人工作?调整滑块的一种不太有用的方法是找到元素,按住一段时间,然后拖动到另一个元素:
h79rfbju4#
Swift 4.2+
@bartłomiej-semańczyk的回答,修改了一点像这样:
1.获取您的滑块:
1.调整其值:
**注:**数字为
CGFloat
,介于0和1之间。如果你的UISlider最小值和最大值不是0到1,你必须先像这样转换它:uemypmqf5#
如何将UISlider移动到右侧️
如何将UISlider移动到左侧️