javascript - TestCafe - 点击链接后等待页面加载

标签 javascript testing automated-tests e2e-testing testcafe

我正在使用 testcafe 进行端到端测试我当前的电子商务项目。在产品列表页面上,我使用选择器来选择产品图 block 并执行单击。在此之后,页面加载产品详细信息页面,我可以继续进行测试。

问题是它已经在页面尚未加载时继续执行产品详细信息页面的断言。我假设点击操作将等待元素出现并等待页面加载,然后再继续断言。

测试:

import HomePage from '../pages/HomePage/HomePage';
import ProductListerPage from '../pages/ProductListerPage/ProductListerPage';
import Browser from '../helpers/Browser';

fixture('test case').page('http://www.homepage.com');

test('test 1', async t => {
  const homePage = new HomePage();
  await homePage.header.search(t, 'foo bar');

  await t.expect(Browser.getCurrentLocation()).eql('http://www.product-lister/search?q=3301');
  const productListerPage = new ProductListerPage();
  await productListerPage.goToFirstProduct(); // <<< in here I click on the first product

  await t.expect(Browser.getCurrentLocation()).eql('http://www.product-detail/'); // << already executed on lister page instead of product page
});

产品列表页面:

import AbstractPage from '../AbstractPage';
import {t, Selector} from "testcafe";

class ProductListerPage extends AbstractPage {

  constructor() {
    super();

    this._productTilesContainer = Selector('.productLister-productTeasersInner');
    this._productTiles = this._productTilesContainer.child('a.productListerTeaser');
  }

  async goToFirstProduct() {
    return await t.click(this._productTiles.nth(0));
  }
}

export default ProductListerPage;

是否有另一种等待页面加载的方法,而不是只使用 sleep ?或者最好的解决方案是什么?

问候, 康乃尔

最佳答案

您可以指定一个超时值,这样 expect 将等待一定的时间,直到您的页面位于该 url 上。根据您需要多少时间,您可以将超时更改为更低或更高,否则它使用默认超时,我不记得默认是什么?

有关 Selector Options 的更多信息

await t.expect(Browser.getCurrentLocation()).eql('http://www.product-detail/', {timeout: 5000});

关于javascript - TestCafe - 点击链接后等待页面加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52078301/

相关文章:

javascript - Opera Mobile 中如何确定当前浏览器是否处于全屏模式

javascript - 电子邮件是否支持 JavaScript?

javascript - Express 的 API 发布问题

Ruby 正则表达式匹配维度

使用 JMeter 进行 tcp.net 绑定(bind)测试的 WCF

testing - 如何将随机参数传递给 SilkTest Workbench 或 Classic Record&Play Scenario

gwt - GWT 2.0 的 Selenium 测试

javascript - 从末尾删除元素并添加到开头

scala - 如何使用 Selenium WebDriverWait 获得更有意义的失败消息/断言?

javascript - Cypress .io : Server Error | 404 - File or director not found