小编bku*_*era的帖子

在赛普拉斯,在测试之前在localStorage中设置一个令牌

我想登录并localStorage在客户端设置令牌(具体jwt)

cy.request如赛普拉斯文档中所建议的,如何使用它来实现此目的?

browser e2e-testing cypress

24
推荐指数
3
解决办法
1万
查看次数

Cypress:键入 Tab 键

我想测试我的表单是否可访问,并且我可以在输入元素之间进行切换。我发现这个 github 问题在这里请求该功能: https: //github.com/cypress-io/cypress/issues/299

目前我尝试这样做.type('{tab}'),但收到以下错误:

CypressError:{tab} 不是受支持的字符序列。您将需要使用命令 cy.tab(),该命令尚未准备就绪,但完成后您将使用该命令。

目前是否有针对缺乏选项卡支持的解决方法?

testing e2e-testing cypress

19
推荐指数
1
解决办法
2万
查看次数

赛普拉斯:仅运行一项测试

我只想切换运行一个测试,所以不必等待其他测试来查看一个测试的结果。

目前,我注释掉了其他测试,但这确实很烦人。

有没有一种方法可以切换仅运行一个测试Cypress

e2e-testing cypress

19
推荐指数
7
解决办法
7781
查看次数

赛普拉斯无法在 Windows 上启动

我刚刚使用“npm install cypress --save-dev”安装了赛普拉斯,并确认安装成功,详情如下

  • 下载赛普拉斯
  • 解压柏树
  • 安装完成

尝试使用提示打开赛普拉斯: node_modules.bin\cypress open 但得到以下消息但没有列出错误。有没有人遇到过这个?

“看起来这是您第一次使用 Cypress:1.4.1

? 赛普拉斯版本:1.4.1 赛普拉斯无法启动。

这通常是由缺少库或依赖项引起的。

下面的错误应该表明缺少哪个依赖项。

https://on.cypress.io/required-dependencies

如果您使用 Docker,我们会提供安装了所有必需依赖项的容器。


平台:win32 (10.0.14393) Cypress 版本:1.4.1"

windows node.js cypress

16
推荐指数
3
解决办法
2万
查看次数

如何重试失败的测试?

我有时会有 1 或 2 个在 CI 中失败的测试,并且重新运行构建会导致它们通过。

如何自动重新运行这些不稳定的测试,以便我的构建第一次通过?有什么类似mochathis.retries

例如,我有一个测试失败,“元素的有效高度为 0x0”大约有 10% 的时间:

cy.visit('/')
cy.get('.my-element').click() // sometimes fails with not visible error
Run Code Online (Sandbox Code Playgroud)

continuous-integration cypress

13
推荐指数
1
解决办法
4991
查看次数

如何修复错误“TypeError:cy.[自定义命令]不是函数”?

我在commands.js 文件中编写了一些函数用于cypress 自动化测试,其中我只能调用一个(即“登录”),但无法调用另一个.js 文件中的其他函数。赛普拉斯测试运行程序显示

“类型错误:cy.FillAddCaseDetails不是一个函数”

describe('Adding a Case on CSS Poratal ', function() {

  before(function () {
    cy.login()    // calling login function successfully
  })

  it('open add case',function(){
    cy.wait(9000)
    cy.hash().should('contains','#/home')
    cy.wait(['@GETcontentLoad']);
    cy.wait(['@POSTcontentLoad']);
    cy.get('[uib-tooltip="Add Case"]').click({force:true})
    cy.log('clicked on Add case')
    cy.wait(3000) 
    cy.get('[ng-click="lookup.cancel()"]').click({force: true})
    cy.get('[ng-click="lookup.closeAddCase()"]').click({force: true})
    cy.get('[uib-tooltip="Add Case"]').click({force:true}) 
    cy.wait(3000)
    cy.get('[ng-model="lookup.selectedPartner"]',{force:true})
      .type(AddJob.JobData.Partner,{force: true}) 
    cy.xpath('//input[@ng-model="lookup.selectedPartner"]')
      .should('be.visible').then(() => {
        cy.FillAddCaseDetails()   // unable to call   
        cy.FillCustomerDetails()  // unable to call 
      })
Run Code Online (Sandbox Code Playgroud)

功能:

Cypress.Commands.add("FillCustomerDetails", () => {

  cy.get('[ng-model="lookup.firstName"]')
    .type(AddJob.JobData.FirstName, { force: true}) 

  cy.get('[ng-model="lookup.lastName"]')
    .type(AddJob.JobData.LastName, { force: true …
Run Code Online (Sandbox Code Playgroud)

javascript typescript cypress

10
推荐指数
2
解决办法
2万
查看次数

用 Cypress 测试摩纳哥编辑器

在此处输入图片说明

上面是 Monaco Editor 渲染的 dom 节点的层次结构。有一个textarea节点呈现,但不允许修改现有内容

例子:

如果编辑器中的内容是“Foo”,那么这段代码...

cy.get('.react-monaco-editor-container textarea')
      .type('{selectall}')
      .type('blah');
Run Code Online (Sandbox Code Playgroud)

...只会在编辑器中添加 blah,导致“blahFoo”

您如何使用赛普拉斯在摩纳哥编辑器中选择所有内容并更新内容?

编辑:

我已经尝试了到目前为止给出的所有建议:.click()、.clear() 等。它不起作用。请仅在您尝试过并有效时提供建议。

cypress

8
推荐指数
1
解决办法
1229
查看次数

如何比较 Cypress 中的数组?

我想将数组中存在的数据与在 cypress 中使用 .each 从类中检索到的数据进行比较?

使用下面的代码,我尝试使用下面的代码迭代 FileType 数组。

const Filetype = ['Access', 'Excel', 'Text/CSV','PDF','JSON','dsdsd'];
const te = cy.wrap($bodyFind).find('.data-sourcename').should('have.length',6).each(($li) => { cy.log($li.text()); });

te.each(($text)=> {
cy.log("Te" + $text); 
//prints ['Access','Excel','Text/CSV','PDF','JSON','XML'];
});

// Converted FileType Array to Cypress object using cy.wrap command.
const cywrap = cy.wrap(Filetype);
      te.each((e1)=>cywrap.each((e2)=> {
      if(e1 == e2) {
         expect(e1).equals(e2);
       }
     }));
Run Code Online (Sandbox Code Playgroud)

但是e1和e2的值是一样的。期望应该失败,“dsdsd”等于“XML”,而它通过“dsdsd”等于“dsdsd”

cypress

8
推荐指数
1
解决办法
9623
查看次数

在赛普拉斯的测试中保留cookie/localStorage会话

我想保存/持久化/保存由cy.request()设置的cookie或localStorage令牌,这样我就不必使用自定义命令登录每个测试.这应该适用于存储在客户端localStorage中的jwt(json web tokens)之类的令牌.

cypress

6
推荐指数
5
解决办法
6201
查看次数

当 webpack-dev-server 导致页面重新加载时,在 GUI 中重新运行 Cypress 测试

我正在使用 webpack-dev-server 和 Cypress GUI 进行开发工作流,我希望 Cypress 在 WDS 自动重新加载触发的页面重新加载时自动重新运行/重新启动测试。

现在发生的是我看到 WDS 导致页面重新加载,但 Cypress 会话只是停留在它停止的地方。

我似乎无法找到一种方法来实现这一点。我没有看到任何公共(或私人)方式来触发赛普拉斯重新运行当前选定的测试。

javascript webpack webpack-dev-server cypress

5
推荐指数
1
解决办法
787
查看次数