使用赛普拉斯,我将如何编写一个简单的测试来检查页面上是否存在徽标图像
Using Cypress, how would I write a simple test to check that a logo image exists on a page
具体来说,我想测试徽标是否出现在应用程序的主页上。我想我不确定我应该用什么来寻找图像。
我试过了
it('has a logo', function () {
cy.visit('http://localhost:3000')
cy.get('img').should('contains' , 'My-Logo.png')
})
而不是 cy.get 我也尝试只使用
cy.contains('My-Logo.png')
但它也失败了。
我不确定我应该使用什么元素或者我是否应该使用 get,但它失败了。当我查看网页的源代码时,徽标隐藏在 javascript(nodeJS、vueJS 和 expressJS 应用程序)中,我注意到 javascript 似乎添加了一系列数字和字母当我进入图像页面时,即使资产文件夹中的图像名称没有它,我也会看到图像。我的标志.d63b7f9.png.
我自己想出了解决方案。
cy.get('form').find('img').should('have.attr', 'src').should('include','My-Logo')
我检查了元素,发现 <img src...
行嵌入在 <form>
中。我可以做 cy.get('form')
并通过,但不能做 cy.get('img')
通过。所以然后我把它们链接在一起,它就通过了。我不确定为什么我不能简单地添加第二个 should 语句,但是当我尝试 运行:
时它失败了
cy.get('form').find('img').should('include','My-Logo')
我不完全确定为什么,但它需要第一个 "should" 语句。我通过询问不带扩展名的文件名来解决 VUE 添加数字和字母序列的问题。我希望这可能对其他人有所帮助,因为文档似乎没有涵盖这一点。
您只能使用一个 should
语句,例如:
cy.get('form').find('img').should('have.attr', 'src', 'My-Logo')
should
的第三个参数是 match
元素属性的值。
具体来说,我想测试徽标是否出现在应用程序的主页上。我想我不确定我应该用什么来寻找图像。
我试过了
it('has a logo', function () {
cy.visit('http://localhost:3000')
cy.get('img').should('contains' , 'My-Logo.png')
})
而不是 cy.get 我也尝试只使用
cy.contains('My-Logo.png')
但它也失败了。
我不确定我应该使用什么元素或者我是否应该使用 get,但它失败了。当我查看网页的源代码时,徽标隐藏在 javascript(nodeJS、vueJS 和 expressJS 应用程序)中,我注意到 javascript 似乎添加了一系列数字和字母当我进入图像页面时,即使资产文件夹中的图像名称没有它,我也会看到图像。我的标志.d63b7f9.png.
我自己想出了解决方案。
cy.get('form').find('img').should('have.attr', 'src').should('include','My-Logo')
我检查了元素,发现 <img src...
行嵌入在 <form>
中。我可以做 cy.get('form')
并通过,但不能做 cy.get('img')
通过。所以然后我把它们链接在一起,它就通过了。我不确定为什么我不能简单地添加第二个 should 语句,但是当我尝试 运行:
cy.get('form').find('img').should('include','My-Logo')
我不完全确定为什么,但它需要第一个 "should" 语句。我通过询问不带扩展名的文件名来解决 VUE 添加数字和字母序列的问题。我希望这可能对其他人有所帮助,因为文档似乎没有涵盖这一点。
您只能使用一个 should
语句,例如:
cy.get('form').find('img').should('have.attr', 'src', 'My-Logo')
should
的第三个参数是 match
元素属性的值。