2017-10-17 94 views
1

在UI测试上的Xcode 9.0(9A235)时进行调整,以UISlider互动与adjust(toNormalizedSliderPosition:)在所有的时候UISlider嵌套在UITableViewCell不起作用。UI测试:滑块失败嵌套在表格视图单元格

我已经在许多不同的场景进行测试: - 正常UISlider不是嵌入UITableView做工精细与adjust方法。 -UISliderUITableView共存但不在表格视图内单元继续与adjust -UISliderUITableView中可以唯一地标识。 - UISliderUITableView确定可以简单的事件作出响应像tap() - UISliderUITableView标识不adjust方法在所有的工作,甚至当我修改的行数为1的错误信息是:

为元件PID故障提取属性:24415, elementOrHash.elementID:106102876671744.43:错误 域= XCTDaemonErrorDomain代码= 13 “撷取为属性5011 值返回错误AX -25205”。的UserInfo = {NSLocalizedDescription =正在获取 的属性值5011 AX返回错误-25205}

相关讨论中,我在网上找到: https://forums.developer.apple.com/thread/77445

我已经上传my code online太多,如果有人有兴趣看它。

我已经向苹果公司提交了一份bug report。我问的是,有没有人知道我可以用来调整UISlider值时,滑块嵌套在UITableViewCell可能的解决方法?谢谢!

回答

2

您可以使用此作为一种解决方法:

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 %") 
} 
+0

我试图通过更换'DX概括这一点:以'normalizedSliderPosition' 0.5'但随后得到了同样的错误了,但是这是一个可以接受的解决方法。谢谢! – HuaTham

+1

好的。为了从'0.5'进行概括,我最终得到了'(slider1.value as!NSString).floatValue/100.0'。 – HuaTham