这是我的代码,用于在React Native中使用Appium清除Android上的输入:
driver.elementByAccessibilityId(inputName)
.then(input => input.click()
.then(() => input.clear()))
input.click()
之所以存在,是因为input.clear()
在Android中似乎没有选择文本字段。此解决方法在Android上效果很好。
但是,input.click()
在iOS上似乎没有任何作用。有没有人为此找到解决方法?
答案 0 :(得分:1)
这是我的解决方法:发送TextInput
中的字符一样多的退格键。
不幸的是,由于this issue,您必须知道TextInput
中是什么文本。这是我的完整代码,如果有人想使用它:
import {Platform} from 'react-native';
/**
* @param {string} inputName Name of element
* @param {string} value Value previously in the input, used by iOS.
* @returns {() => Promise}
*/
function clearInput(inputName, value) {
if (Platform.OS === 'android') {
return () => driver.elementByAccessibilityId(inputName)
.then(input => input.click()
.then(() => input.clear()))
.then(() => driver.hideDeviceKeyboard());
}
else {
return () => driver.elementByAccessibilityId(inputName)
.then(input => input.type('\b'.repeat(value.length)))
.then(() => driver.hideDeviceKeyboard());
}
}
我仍然想知道您是否应该通过某种方式在iOS中执行此操作,或者这仅仅是Appium的错误。