TestCafe可以按照顺序浏览多个页面吗?

问题描述

我对testcafe很陌生,(但是我所看到的很兴奋),所以这可能是一个愚蠢的错误。 我发现的所有testcafe示例均取决于单个URL。 但是,我想测试一个非常熟悉的序列:

  1. 用户在X页中做出一些选择,然后点击“提交”,
  2. 页面Y中为用户显示多个匹配记录,并在一个结果中单击某项,
  3. 用户看到详细信息页面Z,其中包含一条记录的完整信息

当我在testcafe中尝试此操作时,我的测试会在控件离开X时终止。它永远不会看到Y。 因此,在测试的最后几行中,它提交了第X页

   await t 
      .click(submitButton); 

..如果我寻找应该在Y页中的值,

   await t 
      .expect(Selector('#back-to-home-page').innerText)
      .contains ('Back to Page X');

选择器找不到它们。它只会在X页中找到内容。 (我有testcafe v 6.14,但这不是特定于版本的)。 谢谢。

解决方法

我不确定我是否能准确理解您的问题,页面Y是否是打开的其他页面? (例如,您单击提交,然后在新标签页/窗口中打开Y页) 为此,请参见:https://devexpress.github.io/testcafe/documentation/guides/advanced-guides/multiple-browser-windows.html

另外,根据您提供的最后一个示例,可能是元素加载速度不够快的情况?

尝试类似的东西:

   await t 
  .expect(Selector('#back-to-home-page').innerText).contains('Back to Page X',{timeout: 20000})

查看元素是否在testcafe期望之前就已经存在了。

,

谢谢你这个主意。 我的情况仅在单个窗口中,而不在多个窗口或选项卡中。页面X和Y是同一域上的不同URL:一个表单,然后是一个搜索结果页面。完全典型的流程。

我尝试了您的好建议,但没有成功,现在我知道为什么了。

由于到目前为止未知的原因,即使在TestCafe完成所需的输入之后,Page X提交按钮仍保持禁用状态。它可见但变灰。对于人工输入,只有使用TestCafe数据输入才不会发生这种情况。某些JQuery验证未触发。

作为新手,在此之前,我不确定在任何情况下Testcafe是否都可以从X页转到Y页,这是一个可怕的限制。但是,当我在其他站点上使用TestCafe时,我现在向我证明了这种方法是可行的。 我无法在测试站点上解决JQuery,它过于详细,无法在此处发布。但我很高兴结束这个问题。

谢谢你们。