根据docs,选择值的方法仅适用于IOS。对于Android,是否有任何建议的解决方案?
tcomlyy61#
await waitFor(element(by.id('android_touchable_wrapper'))).toBeVisible() await element(by.id('android_picker_headless').withAncestor(by.id('android_touchable_wrapper'))).atIndex(0).tap() await element(by.text('Picker Value Dropdown 1')).tap()
ruoxqz4g2#
我在选择器中添加了一个testID字段:
<Picker testID='test-picker'> ... </Picker>
然后按如下方式处理选择:
if (global.device.getPlatform() === 'ios') { await element(by.id('test-picker')).setColumnToValue(0, 'First item'); } else { // Android await element(by.id('test-picker')).tap(); await element(by.text('First item')).tap() }
您可以创建一个可重用的函数来处理这个问题:
const selectPicker = async (pickerId, text, value = 0) => { if (global.device.getPlatform() === 'ios') { await element(by.id(pickerId)).setColumnToValue(value, text); } else { // Android await element(by.id(pickerId)).tap(); await element(by.text(text)).tap(); } }
然后在需要时引用它:
await selectPicker('test-picker', 'First item', 0);
2条答案
按热度按时间tcomlyy61#
ruoxqz4g2#
我在选择器中添加了一个testID字段:
然后按如下方式处理选择:
您可以创建一个可重用的函数来处理这个问题:
然后在需要时引用它: