如何解决TestCafe 不支持剪贴板
我只是尝试将文本从 gmail 复制/粘贴到另一个输入,并意识到咖啡馆测试不支持 ctrl-c、ctrl-v。
这是我尝试做的:
pom:
import { Selector,t} from 'testcafe';
class LoginPage {
copyStepCarrierPassword: Selector;
copyCarrierPassword: Selector;
emailInput: Selector;
constructor(){
this.copyStepCarrierPassword = Selector('[class="ams bkG"]');
this.copyCarrierPassword = Selector('[class="gmail_quote"]');
this.emailInput = Selector('[id="userEmail"]');
}
async copyPassword(){
await t
.selectText(this.copyCarrierPassword,1,10)
.pressKey('ctrl+c');
}
async navigatetoCarrierPage(carrierPageUrl){
await t
.navigateto(carrierPageUrl)
}
async setEmailInput(emailInput){
await t
.typeText(this.emailInput,emailInput)
.pressKey('ctrl+v');
}
}
测试:
test('copy/Paste password',async t => {
await t
LoginPage.copyStepPassword();
await t.wait(1000);
LoginPage.copyPassword();
await t.wait(3000);
await t.openWindow(carrierUrl);
LoginPage.setEmailInput('');
await t.wait(3000);
}
我看到了示例 here,但我不知道如何在我的情况下使用它。 谁知道如何解决这个问题?
解决方法
不管怎样,我想知道你在这种情况下测试了什么。那 Ctrl+C 和 Ctrl+V 工作吗?但这很可能与您的应用程序无关。为什么不直接获取文本,然后将其输入到用户电子邮件输入中?为什么一定要用 Ctrl+C 和 Ctrl+V 来实现?
如果您真的需要粘贴功能,.typeText()
方法中有一个选项:
await t
.typeText(this.emailInput,emailInput,{ paste: true });
既然你是从 Gmail 复制的,我想你不需要用 Ctrk+C 来做。我认为无论如何你都不需要为此使用 UI。这样做有充分的理由,一个是您无法控制 Gmail 应用程序,因此如果他们更改 UI/选择器,您的测试将失败。这是片状的,你想避免这种情况。了解如何改用 API 调用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。