如何通过Appium / WebdriverIO更改iOS滑块值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过Appium / WebdriverIO更改iOS滑块值相关的知识,希望对你有一定的参考价值。

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

通常在XCUITest中,我可以使用以下代码轻松实现这一点:

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

如何在Appium / WebdriverIO中执行等效操作?我读过某个地方,应该打电话给sendKeys()。我尝试了以下方法:

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

但是它给了我以下错误:

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

似乎sendKeys用于输入字段,而不用于滑块!

答案

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

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

据我所知,它的工作原理是这样的>>

以上是关于如何通过Appium / WebdriverIO更改iOS滑块值的主要内容,如果未能解决你的问题,请参考以下文章

在不使用 adb 的情况下使用 Appium 和 Webdriverio aka wdio 获取您的应用程序的许可

使用 Appium 进行测试时,Webview 上下文不再显示

webdriver(selenium+appium)

WebdriverIO - 在 Android 和 iOS 上并行运行相同的代码

appium的webdriver和selenium有啥区别?

webdriver修改元素value