【发布时间】:2020-10-16 01:55:13
【问题描述】:
我有以下情况: 我在搜索框中搜索一个元素。当元素出现时(可能需要一些时间),我单击加载新视图的元素。然后我尝试单击新视图中的某个按钮。由于加载搜索结果需要一些时间,因此不会加载新视图。有什么办法可以避免 wait()?
这就是我所拥有的:
cy.get('[data-cy="search"][data-component="input_box"]').type('Find me{enter}')
cy.wait(200) // How to avoid this???
cy.get('[data-name="Find me"]').contains('Find me').click()// Should load a new view
cy.get('[data-cy = "filter"]').click() // failing here as new view is not loaded
任何建议都将受到高度赞赏。
类似的:
describe('Tutorialspoint Test', function () {
// test case
it('Test Case1', function (){
// test step to launch a URL
cy.visit("https://www.tutorialspoint.com/videotutorials/index.php");
// enter test in the edit box
cy.get("#search-strings").type("Java");
// wait for some time
cy.wait(3000); // ---> how to avoid this?
// using jQuery selector to identify only visible elements
// assertion to validate the number of search results
cy.get('.clsHeadQuestion:visible'). should('have.length',19);
});
});
【问题讨论】:
-
您能否提供一个简化的应用示例?但基本上,您只需要在点击过滤器后“等待”新视图
-
我经常这样做会等太久 :)
-
抱歉,没说清楚。我的意思是,在此断言之后像
cy.get('your-view-page').should('exist')一样等待,您的视图页面已准备就绪,您可以为该页面做出更多断言 -
您可以了解更多关于赛普拉斯如何自动重试您的查询(等到它出现),正如我在上面的文档docs.cypress.io/guides/core-concepts/retry-ability.html中提到的那样
标签: javascript automation cypress