【问题标题】:Check if value in the text input is visible completely or not with Cypress使用赛普拉斯检查文本输入中的值是否完全可见
【发布时间】:2020-03-31 09:49:38
【问题描述】:

我想编写一个 Cypress 测试来检查文本框中插入的值是否完全可见。例如下面的图片通过了测试,因为所有 10 个插入的字符都是可见的:

但是下一张图片没有通过测试,因为插入的 10 个字符中只有 6 个是可见的:

知道如何用 Cypress 实现它吗?

请注意,在这两种情况下输入的值相同(1234567890),只有在第二种情况下,它是不可见的,因为输入没有足够的空间。

【问题讨论】:

    标签: javascript frontend cypress e2e-testing


    【解决方案1】:

    使用正则表达式验证十位数字

    请看下面的脚本:

    1.10位数字:

    cy.get('#<class-name-of-text-input>').contains(/^\d{10}$/)
    

    2.对于包含所有0-9位数字的10位数字

    cy.get('#<class-name-of-text-input>').contains(/^(?!.*(.).*\1)\d{10}$/)
    

    检查Regexr 以验证表达式。

    【讨论】:

    • 事实上两个输入具有相同的值 (1234567890)。但是由于其中一个有更多的填充,在第二个中乍一看是不可见的,这对用户来说很烦人。我想确保至少 10 位数的项目中的任何输入都不会发生这种情况
    • ^ 用于开始。 $ 用于字符串的结尾。 “1234567890”仍然失败
    • 你没有明白我的意思。如果正则表达式测试通过,则两种情况都通过,如果失败,则两种情况都失败,因为在两种情况下输入具有相同的值!
    • 那么您的要求是 10 位数字还是 0-9 的每个数字?
    • 我不在乎值是什么,我只希望它对用户完全可见,并且用户不必单击输入并使用箭头按钮查看隐藏的数字
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-15
    • 2019-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    相关资源
    最近更新 更多