等待页面加载 - 赛普拉斯
Waiting for a page to load - Cypress
我遇到了页面未完全加载的问题。我尝试了 cy.wait(1000)
方法,我认为这不是一个好的解决方案,但仍然无法正常工作,页面未完全加载。
这是我要测试的网站 https://www.24mx.ie/
。这
代码在文件 homePage.js
.
中
class HomePage {
static loadHomePage() {
cy.visit(Cypress.env('url') + '.ie/');
cy.wait(1000)
}
static acceptCookies() {
cy.get('div.m-button.m-button--navigation.m-button--xs.qa-consent-agree-btn.ng-tns-c95-8').click();
}
}
export default HomePage
文件中的代码homePage.spec.js
import HomePage from '../pageObjects/homePage'
describe('Home Page Test', function () {
it('Home Page TC', function () {
HomePage.loadHomePage();
})
it('Accepting Cookies TC', function () {
HomePage.acceptCookies();
})
})
这是测试的打印屏幕:
您应该只执行 cy.get()
和 .should()
让 Cypress 等待页面上出现的内容。
如果页面正忙于执行 API 请求,您可以对一个或多个 API 调用执行 cy.intercept()
,然后等待它们。这将在您等待元素出现之前为您争取一些时间。您可以查看 Chrome 调试工具中的网络选项卡,了解页面发出的 API 请求。我会选择一个需要一些时间来加载的,然后等待它。
与 cy.wait()
相比,这是一种“等待”页面加载的更好方法
为确保页面加载成功,您可以断言任何元素可见。因为在页面加载后你点击了接受 cookie 按钮,我建议断言与可见相同,比如:
class HomePage {
static loadHomePage() {
cy.visit(Cypress.env('url') + '.ie/');
cy.get('[class*=qa-consent-agree-btn]', {
timeout: 5000
}).should('be.visible') //Make sure Cookie Accept button is visible with timeout of 5 seconds. You can increase timeout as required.
}
static acceptCookies() {
cy.get('[class*=qa-consent-agree-btn]').click();
}
}
export default HomePage
我遇到了页面未完全加载的问题。我尝试了 cy.wait(1000)
方法,我认为这不是一个好的解决方案,但仍然无法正常工作,页面未完全加载。
这是我要测试的网站 https://www.24mx.ie/
。这
代码在文件 homePage.js
.
class HomePage {
static loadHomePage() {
cy.visit(Cypress.env('url') + '.ie/');
cy.wait(1000)
}
static acceptCookies() {
cy.get('div.m-button.m-button--navigation.m-button--xs.qa-consent-agree-btn.ng-tns-c95-8').click();
}
}
export default HomePage
文件中的代码homePage.spec.js
import HomePage from '../pageObjects/homePage'
describe('Home Page Test', function () {
it('Home Page TC', function () {
HomePage.loadHomePage();
})
it('Accepting Cookies TC', function () {
HomePage.acceptCookies();
})
})
这是测试的打印屏幕:
您应该只执行 cy.get()
和 .should()
让 Cypress 等待页面上出现的内容。
如果页面正忙于执行 API 请求,您可以对一个或多个 API 调用执行 cy.intercept()
,然后等待它们。这将在您等待元素出现之前为您争取一些时间。您可以查看 Chrome 调试工具中的网络选项卡,了解页面发出的 API 请求。我会选择一个需要一些时间来加载的,然后等待它。
与 cy.wait()
为确保页面加载成功,您可以断言任何元素可见。因为在页面加载后你点击了接受 cookie 按钮,我建议断言与可见相同,比如:
class HomePage {
static loadHomePage() {
cy.visit(Cypress.env('url') + '.ie/');
cy.get('[class*=qa-consent-agree-btn]', {
timeout: 5000
}).should('be.visible') //Make sure Cookie Accept button is visible with timeout of 5 seconds. You can increase timeout as required.
}
static acceptCookies() {
cy.get('[class*=qa-consent-agree-btn]').click();
}
}
export default HomePage