排毒 - 启用时点击按钮

时间:2018-01-17 18:59:43

标签: testing react-native detox

使用Detox测试时,在按钮上执行tap()时遇到问题。

<Button style={this._loginButtonDisabled() ? {} : styles.loginButtonActive}
        disabled={this._loginButtonDisabled()}
        onPress={this.logInClick}
        testID='logInButton'>
    <Text style={styles.loginButtonText}>Log In</Text>
</Button>   

我们的测试如下:

const emailInput = element(by.id('emailInput'));
await emailInput.replaceText('idontexist@myeatclub.com');

const passwordInput = element(by.id('passwordInput'));
await passwordInput.replaceText('password');

await element(by.id('logInButton')).tap();

该按钮始终可见,但只有在表单字段中输入文本后才能启用(&#39; tappable&#39;)。因此,上面的代码在启用之前点击按钮,导致没有真正的操作。我想做的是等到按钮启用,然后执行点按。

处理此类情景的建议方法是什么?我无法在文档中找到任何好的例子。

1 个答案:

答案 0 :(得分:0)

我认为这是因为您使用的是 replaceText

请尝试使用 typeText

像这样:

const emailInput = element(by.id('emailInput'));
await emailInput.replaceText('idontexist@myeatclub.com');

const passwordInput = element(by.id('passwordInput'));
// \n is used to press the return key on keyboard
await passwordInput.typeText('password\n');

await element(by.id('logInButton')).tap();