【问题标题】:How to get the text input field value to a const and log that value in Cypress.io如何将文本输入字段值获取为 const 并将该值记录在 Cypress.io 中
【发布时间】:2019-01-18 11:36:05
【问题描述】:

如何在 Cypress 中将文本输入字段值获取到“const”变量,以便我可以使用 cy.log() 记录该变量。以下代码没有记录任何内容,请熟悉 Cypress.io 的人指教

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

    })

【问题讨论】:

    标签: javascript cypress


    【解决方案1】:

    如果您想在断言之前按摩或处理文本:

    cy.get('input').should(($input) => {
      const val = $input.val()
    })
    

    using-cypress-faq

    【讨论】:

      【解决方案2】:

      赛普拉斯官方解决方案How do I get an input’s value? 建议如下代码:

      cy.get('input[name="email"]').should('have.value', val)

      【讨论】:

      • 不完全是问的,但对其他情况很有用
      【解决方案3】:

      【讨论】:

      【解决方案4】:

      来自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);
        });
      

      这在对以下元素的测试中对我有用:

      <span class="abProgress" style="width: 0%;">100%</span>
      

      【讨论】:

      • 我试过了,现在它抛出错误'cypress_runner.js:141304 TypeError: $el.invoke is not a function at Context.'
      • 抱歉,我记错了。我直接从我的工作测试中用一些代码更新了答案(但把你的选择器放在适当的位置)。当我弄清楚它时,我发现这有点挑剔,并且某些类型的元素不适用于这个,所以希望它对你有用。
      • 没有运气,我已经尝试如下,但日志没有记录在文本字段 'cy.get('input[name="email"]').invoke('text ').then(text=>{ const sometext = text; cy.log(sometext); })'
      • @Brendan,最后想通了,用 invoke('val') 代替了 invoke('text')。现在赛普拉斯正在记录变量值... 'cy .get('input[name="email"]').invoke('val').then(val => { const sometext = val; cy.log(sometext ); })'
      • @soccerway 很高兴听到,这个元素看起来像什么?
      【解决方案5】:

      使用invoke('val') 而不是invoke('text') 适合我的情况。

      html标签提醒

      <input type="text" class="form-control" name="email">
      

      赛普拉斯代码

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

      【讨论】:

      • .invoke('val') 很神奇!我尝试了几个小时来获取 v-text-field 值。谢谢!!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-26
      • 1970-01-01
      • 1970-01-01
      • 2021-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多