Мокко не может найти идентификатор в поле ввода - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь получить текст ввода через .text (); метод из селена. Но каждый раз, когда я пытаюсь получить элемент, он выводит, что соответствующий ID не был найден.

(я использую Input from nativebase, но я уже пытался проверить его с помощью встроенного компонента textinput)

                      <Form>
                            <Item
                                testID='input_nomePaciente_formPacientes'
                                stackedLabel>
                                <Label style={styles.label}>Nome</Label>
                                <Input value={this.state.paciente.nome.toUpperCase()}
                                    style={styles.inputForm}
                                    testID='input_testID'
                                    autoCorrect={false}
                                    keyboardType={(Platform.OS === 'android') ? 'visible-password' : ''}
                                    autoCapitalize='none'
                                    onChangeText={(text) => this._updateItem('nome', text, 0)} />
                            </Item>

Я могу взаимодействовать с элементом с помощью sendKeys (); и нажмите (); через ItemID TestID, но я не могу взаимодействовать с чем-либо внутри ввода. Я также не могу получить значение поля через ItemID testID.

Вот как я пытаюсь получить вывод:


let testID = await driver.elementByAccessibilityId("input_testID");
            let testIDValue = await testID.text();

            console.warn(testIDValue);

1 Ответ

0 голосов
/ 26 февраля 2020

Оказывается, что мокко / селен не найдет импортированные компоненты нативной базы. Пытался получить вход через нативный компонент, и он работал просто отлично.

Это прекрасно работает:

<Label style={{ marginLeft: 10 }}>Login</Label>
      <TextInput // react-native input component
          autoCapitalize='none'
          testID='input_login'
          editable={true}
          autoCorrect={false}
          keyboardType={(Platform.OS === 'android') ? 'visible-password' : ''}
          onChangeText={(item) => this.setState({ login: item })}
          value={this.state.login} 
       />

Это не будет работать, даже если вы скрестите пальцы:

<Form>
      <Item
           testID='input_nomePaciente_formPacientes'
           stackedLabel>
           <Label style={styles.label}>Nome</Label>
           <Input // nativebase input component
              value={this.state.paciente.nome.toUpperCase()}
              style={styles.inputForm}
              testID='input_testID'
              autoCorrect={false}
              keyboardType={(Platform.OS === 'android') ? 'visible-password' : ''}
              autoCapitalize='none'
              onChangeText={(text) => this._updateItem('nome', text, 0)} />
      </Item>
</Form>
...