TestCafe 不支持剪贴板

如何解决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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?