【问题标题】:My last line of Cypress code is not executed我的最后一行 Cypress 代码没有执行
【发布时间】:2021-01-05 06:36:13
【问题描述】:

我的最后一行代码没有执行,取而代之的是,第一行代码(访问页面)再次执行,之后 cypress 尝试执行剩余的代码,这会自动引发错误。

最后一行代码用于选择付款方式,而不是将页面重定向到主页。

describe('Damensch', () => {
  it('Landing page', () => {

    cy.visit("https://dev1.damensch.com/")

  })
  it('Adding product to cart', () => {

    cy.xpath('//*[@id="menu-item-3531"]/a').click({ force: true })


    cy.xpath("(//span [@title='Limited Edition Box'])[2]").click()
    cy.xpath('//*[@id="bg-swatch-color"]/div[2]/div[3]/form/div[3]/div/div[2]/div[2]/div[2]/span[1]').click()


    cy.get(".qty-plus-btn").click()
    cy.contains('Add to cart').click()
    cy.xpath('//*[@id="primary-navigation"]/div/div/div/div/div[6]/ul/li/div/div/div[15]/p/a').click()  })

  it('Client details', () => {
    cy.get("#shipping_email").type("test11@gmail.com")
    cy.get("#shipping_phone").type("9087927738")
    cy.get("#shipping_name").type("Test Order")
    cy.get("#shipping_postcode").type("160022")
    cy.get("#shipping_address").type("221B Baker Street")
    cy.wait(3000)
    
    cy.get("#save-shipping-add").click() //after this line the browser is redirected to the homepage

    
  })
})

【问题讨论】:

  • 嗨。您能否同时分配柏树日志和显式错误(如果有)?另外,我建议更改测试的结构,例如为你的访问命令使用钩子,或者将整个场景包装在一个块中,这样你就可以避免多米诺骨牌效应,以防第一次测试失败

标签: javascript testing automation cypress


【解决方案1】:

发生这种情况是因为您的测试成功执行了最后一次点击,并且 - 因为您没有结束测试的断言 - 它假定案例已完成,因此它重定向到默认页面。

assertions 作为测试的结束应该可以解决您的问题,并且在没有断言的情况下完成测试自动化过程不是一个好习惯。

【讨论】:

  • 即使我在最后一次点击后尝试提供任何其他命令行,它仍然会重定向到源页面,然后尝试执行它们@Rosen Mihaylov
  • 即使那是一个断言,而不是任何命令?成为一个断言很重要
  • 我在测试中看到它发生在页面上有一些未完成的进程但测试已经完成并且我的解决方案是在我确定页面有之后发生更好的断言完成渲染
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-18
  • 2013-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多