如何将文本输入字段的值获取为const并将该值记录在Cypress.io中

soc*_*way 8 javascript cypress

如何在Cypress中将文本输入字段的值获取为'const'变量,以便我可以使用cy.log()记录该变量。以下代码不记录任何内容,熟悉Cypress.io的人可以建议

cy.get('input[name="email"]').then(($text)=>{
        const txt = $text.text()
        cy.log(txt)

    })
Run Code Online (Sandbox Code Playgroud)

soc*_*way 13

使用invoke('val')而不是invoke('text')为我的情况工作。

提醒html标签

<input type="text" class="form-control" name="email">
Run Code Online (Sandbox Code Playgroud)

赛普拉斯代码

cy.get('input[name="email"]')
  .invoke('val')
  .then(sometext => cy.log(sometext));
Run Code Online (Sandbox Code Playgroud)

  • .invoke('val') 很神奇!我花了几个小时尝试获取 v-text-field 值。谢谢!! (2认同)

小智 9

赛普拉斯官方解决方案如何获取输入值?建议如下代码:

cy.get('input[name="email"]').should('have.value', val)
Run Code Online (Sandbox Code Playgroud)

  • 不完全是所要求的,但对其他情况有用 (4认同)

Bre*_*dan 6

来自https://github.com/cypress-io/cypress/issues/630

您应该能够:

cy
  .get('input[name="email"]')
  .invoke('text')  // for input or textarea, .invoke('val')
  .then(text => {
    const someText = text;
    cy.log(someText);
  });
Run Code Online (Sandbox Code Playgroud)

这在以下元素的测试中为我工作:

<span class="abProgress" style="width: 0%;">100%</span>
Run Code Online (Sandbox Code Playgroud)

  • @ Brendan,终于弄清楚了,不是使用invoke('text'),而是使用invoke('val')。现在,赛普拉斯正在记录变量值...'cy .get('input [name =“ email”]')。invoke('val')。then(val =&gt; {const sometext = val; cy.log(sometext );})' (3认同)