排毒 - 启用时点击按钮
Detox - Tap a button when it becomes enabled
我在使用 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();
该按钮始终可见,但只有在表单字段中输入文本后才会启用 ('tappable')。所以上面的代码在按钮启用之前点击按钮,导致没有实际操作。我想做的是等到按钮启用,然后执行点击。
处理此类情况的建议方法是什么?我在文档中找不到任何好的示例。
我认为这是因为您正在使用 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();
我在使用 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();
该按钮始终可见,但只有在表单字段中输入文本后才会启用 ('tappable')。所以上面的代码在按钮启用之前点击按钮,导致没有实际操作。我想做的是等到按钮启用,然后执行点击。
处理此类情况的建议方法是什么?我在文档中找不到任何好的示例。
我认为这是因为您正在使用 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();