赛普拉斯单击后加载错误的页面

时间:2019-09-18 09:14:55

标签: javascript jquery cypress

我将我的网站设置为外语,因此,当赛普拉斯单击我网站上的联系人按钮或带有href标签的任何按钮时,它应该会将我发送到该页面的外部版本,但是,它将我发送至英语一。尝试手动操作时,我无法复制它。

我正在测试我的网站salaenrollment.com,以确保如果我将网站上的语言切换为外语,则在单击联系人等时不会切换回来。

cy.visit('https://salaenrollment.com/')

cy.contains('ភាសាខ្មែរ').click()
  .url().should('include', '/kh')

cy.contains('ទំនាក់ទំនង').should('have.attr', 'href', '/kh/contact')
  .click()

每次我用cypress测试它时,语言总是会切换,但是当我尝试手动复制它时,我永远都无法切换它。我在cypress上编写了尽可能简单的代码,并在代码中手动设置了等待时间,但没有任何效果。大约90%的时间,当我使用cypress测试时,语言不会切换。网站没有错,也没有错误。

应该发生的是,赛普拉斯将进入网站,更改语言,单击联系按钮,然后联系页面将使用外语。柏树测试应与手动测试相匹配。

2 个答案:

答案 0 :(得分:1)

可能您需要添加一些等待时间,因为在切换语言后重新加载了页面,也许您需要检查元素是否已经出现在Dom中,并且应该添加((be.visible')),方法是尝试检查元素是否准备好。

cy.visit('https://salaenrollment.com/')

cy.contains('ភាសាខ្មែរ').click()
  .url().should('include', '/kh')

cy.contains('ភាសាខ្មែរ').should('be.visible')

cy.contains('ទំនាក់ទំនង').should('have.attr', 'href', '/kh/contact')
  .click()

答案 1 :(得分:0)

您的选择器也有误,请尝试以下操作(在我的本地设置中有效):

 cy.visit('https://salaenrollment.com/')

        cy.get('.language').click()
            .url().should('include', '/kh')

        cy.get('.language').should('be.visible')
        cy.get('.contact ').should('be.visible')

        cy.get('.contact ').should('have.attr', 'href', '/kh/contact')
            .click();