ota*_*iao 5 react-native detox
我刚刚开始使用 Detox 来测试我的 React Native 应用程序,但在测试 Pickers 时遇到了一些麻烦。我基本上需要能够从选择器中选择一个值!但这似乎不可能!
这是我的选择器:
<Picker
style={styles.picker}
itemStyle={styles.pickerItem}
testID="picker"
selectedValue={selectedValue}
onValueChange={this.updateValue}
>
<Picker.Item key={0} label="Choose one" value={null} />
{values.map(value => {
return (
<Picker.Item
key={value}
label={value}
value={value}
testID={value}
/>
);
})}
</Picker>
Run Code Online (Sandbox Code Playgroud)
这是我的测试:
await element(by.type("UIPickerView")).setColumnToValue(0, "Apple");
Run Code Online (Sandbox Code Playgroud)
但我得到的只是一条错误消息,指出无法设置该值,因为它不存在,但它确实存在!因为我现在正在看它!
有谁知道在选择器中设置值的正确方法?
任何帮助都会很棒!
请尝试以下适用的功能react-native-picker-select
const selectPicker = async (text, index = 0, column = 0) => {
if (device.getPlatform() === 'ios') {
await element(by.id('ios_touchable_wrapper')).atIndex(index).tap();
await element(by.id('ios_picker')).setColumnToValue(column, text);
await element(by.id('done_button')).tap();
} else {
await element(by.id('android_picker_headless')).atIndex(index).tap();
await element(by.text(text)).tap();
}
};
Run Code Online (Sandbox Code Playgroud)
注意:即使同一屏幕中有多个选择器,只需将选择器的顺序作为index值传递,它也会起作用
| 归档时间: |
|
| 查看次数: |
1447 次 |
| 最近记录: |