UI 测试:滑块嵌套在 Table View Cell 中时无法调整
UI Testing: Slider fails to adjust when nested in Table View Cell
在 Xcode 9.0 (9A235) 上的 UI 测试中,当 UISlider
嵌套在 UISlider
与 adjust(toNormalizedSliderPosition:)
的交互中根本不起作用UITableViewCell
.
我已经在许多不同的场景中进行了测试:
- 未嵌入 UITableView
的正常 UISlider
s 可以与 adjust
方法一起正常工作。
- UISlider
与 UITableView
共存但不在 Table 内 View Cell 继续与 adjust
一起工作
- UISlider
中的UITableView
可以唯一标识。
- 在 UITableView
中标识的 UISlider
可以响应像 tap()
这样的简单事件
- UITableView
中标识的 UISlider
根本不适用于 adjust
方法,即使我将行数修改为 1。错误消息是:
Failure fetching attributes for element pid: 24415,
elementOrHash.elementID: 106102876671744.43: Error
Domain=XCTDaemonErrorDomain Code=13 "Fetching value for attribute 5011
returned AX error -25205." UserInfo={NSLocalizedDescription=Fetching
value for attribute 5011 returned AX error -25205.}
网上找到的相关讨论:
https://forums.developer.apple.com/thread/77445
我也上传了my code online,有兴趣的可以看看
我已经就此向 Apple 提交了 bug report。我要问的是,当滑块嵌套在 UITableViewCell
中时,有人知道我可以用来调整 UISlider
值的可能解决方法吗?谢谢!
您可以使用此作为解决方法:
func testSliderAdjustsInTableView() {
let app = XCUIApplication()
app.staticTexts["Slider in Table View UI Test"].tap()
let cell = app.tables.element.cells["cell 0"]
let button = cell.buttons["Test Button"]
button.tap()
let slider = cell.sliders["value slider"]
XCTAssert(slider.exists)
let fiftyPercent = slider.coordinate(withNormalizedOffset: CGVector(dx: 0.5, dy: 0.5))
let ninetyPercent = slider.coordinate(withNormalizedOffset: CGVector(dx: 0.9, dy: 0.5))
fiftyPercent.press(forDuration: 0.1, thenDragTo: ninetyPercent)
XCTAssertEqual(slider.value as! String, "90 %")
}
在 Xcode 9.0 (9A235) 上的 UI 测试中,当 UISlider
嵌套在 UISlider
与 adjust(toNormalizedSliderPosition:)
的交互中根本不起作用UITableViewCell
.
我已经在许多不同的场景中进行了测试:
- 未嵌入 UITableView
的正常 UISlider
s 可以与 adjust
方法一起正常工作。
- UISlider
与 UITableView
共存但不在 Table 内 View Cell 继续与 adjust
一起工作
- UISlider
中的UITableView
可以唯一标识。
- 在 UITableView
中标识的 UISlider
可以响应像 tap()
这样的简单事件
- UITableView
中标识的 UISlider
根本不适用于 adjust
方法,即使我将行数修改为 1。错误消息是:
Failure fetching attributes for element pid: 24415, elementOrHash.elementID: 106102876671744.43: Error Domain=XCTDaemonErrorDomain Code=13 "Fetching value for attribute 5011 returned AX error -25205." UserInfo={NSLocalizedDescription=Fetching value for attribute 5011 returned AX error -25205.}
网上找到的相关讨论: https://forums.developer.apple.com/thread/77445
我也上传了my code online,有兴趣的可以看看
我已经就此向 Apple 提交了 bug report。我要问的是,当滑块嵌套在 UITableViewCell
中时,有人知道我可以用来调整 UISlider
值的可能解决方法吗?谢谢!
您可以使用此作为解决方法:
func testSliderAdjustsInTableView() {
let app = XCUIApplication()
app.staticTexts["Slider in Table View UI Test"].tap()
let cell = app.tables.element.cells["cell 0"]
let button = cell.buttons["Test Button"]
button.tap()
let slider = cell.sliders["value slider"]
XCTAssert(slider.exists)
let fiftyPercent = slider.coordinate(withNormalizedOffset: CGVector(dx: 0.5, dy: 0.5))
let ninetyPercent = slider.coordinate(withNormalizedOffset: CGVector(dx: 0.9, dy: 0.5))
fiftyPercent.press(forDuration: 0.1, thenDragTo: ninetyPercent)
XCTAssertEqual(slider.value as! String, "90 %")
}