问题描述
我对testcafe很陌生,(但是我所看到的很兴奋),所以这可能是一个愚蠢的错误。 我发现的所有testcafe示例均取决于单个URL。 但是,我想测试一个非常熟悉的序列:
当我在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,它过于详细,无法在此处发布。但我很高兴结束这个问题。
谢谢你们。