Реакция-native-picker не имеет accessibilityId и testId - PullRequest
0 голосов
/ 02 мая 2019

Я использую реагирующее средство выбора и вижу, что весь код написан на родном языке (Java для Android и Objective C для iOS).

Для автоматизации тестирования нам нужен этот элемент управления, чтобы иметь реквизиты accessibilityLabel и testId, которые недоступны. Infact фокус идет на средства управления за ним. Я использовал сборщик реакционной смеси.

Любая помощь высоко ценится.

Ниже мой код в реагирующе-родном

renderBillingStatePicker() {
    var stateVal = [];
    billingStateCodes = stateData.values;
    stateVal = this.getStateValueArray(billingStateCodes);
    Picker.hide();
    Picker.init({
        pickerTitleText: '',
        pickerConfirmBtnText: 'Next',
        pickerCancelBtnText: '',
        pickerBg: [255, 255, 255, 1],
        accessibilityLabel:'guestcheckout_picker_state',
        testID:'guestcheckout_picker_state',
        pickerData: stateVal,
        selectedValue: [stateVal[indexBillingState]],
        pickerFontSize: (Platform.OS === 'ios') ? 18 : 15,
        pickerToolBarFontSize: (Platform.OS === 'ios') ? 18 : 15,
        pickerTextEllipsisLen: 14,
        pickerBtnStyle: { margin: 10 },
        pickerToolBarStyle: { height: 20, paddinBottom: 5 },
        onPickerConfirm: text => {
            if (!this.isValidString(this.state.billingState)) {
                let itemValue = this.getBillingItemValueOfState(billingStateCodes, stateVal[0]);
                this.setState({
                    billingState: itemValue,
                })
            }
            this.refs.State.changeText();
            this.refs.billingZipCde.focus();
        },
        onPickerCancel: stateVal => {
            Picker.hide();
            this.refs.State.changeText();
        },
        onPickerSelect: selectedText => {
            let itemValue = this.getBillingItemValueOfState(billingStateCodes, selectedText);
            this.setState({
                billingState: itemValue
            })
            this.refs.State.changeText();
        }

    });
    Picker.show();
    if (Platform.OS === 'android') {
        this.setState({
            scrollViewHeight: 180
        })
    }
}
...