首页 > 解决方案 > 如何通过 Appium/WebdriverIO 更改 iOS 滑块值

问题描述

我正在使用 Appium 和 WebdriverIO 测试我的 React Native 应用程序。难以更改滑块值。

通常在 XCUITest 中,我可以使用以下代码轻松实现此目的:

app.sliders["slider-red"].adjust(toNormalizedSliderPosition: 0)

如何在 Appium/WebdriverIO 中进行等效操作?我在某处读到我应该调用 sendKeys()。我尝试了以下方法:

$('~slider-red').sendKeys(['0']);

但它给了我以下错误:

无效元素状态:错误域 = com.facebook.WebDriverAgent 代码 = 1“必须存在屏幕键盘才能发送密钥”

看起来 sendKeys 是用于输入字段,而不是用于滑块!

标签: iosreact-nativeappiumwebdriver-ioxcuitest

解决方案


您可以尝试使用 Appium 为运行非 W3C 标准命令提供的移动手势。在你的情况下,它是mobile: selectPickerWheelValue命令,更多细节在这里

const elementId = $(pickerwheel_locator).elementId
browser.execute('mobile: selectPickerWheelValue',
        {
            'order': 'next',
            'offset': 0.15,
            'element': elemId
        });

据我记得,它是这样工作的


推荐阅读