Testcafe .presskey适用于多台印刷机

时间:2017-10-06 19:10:57

标签: javascript testing testcafe

我正在尝试编写TestCafe Javascript来测试使用键盘作为唯一导航的网页(即“通过选项进行选项卡”)。

TestCafe运行这些测试,但它们运行速度极快(最多5秒),并且屏幕上没有任何反应。所以我想知道它是否真的有效。

最重要的是,我正试图找到一种方法来干掉我的代码。从我在文档中看到的内容来看,每次按下按键时,我都需要调用.pressKey('tab')。如果我需要连续5次点击'tab',我的代码中有5行。有没有办法消除这种不必要的重复?

谢谢!

2 个答案:

答案 0 :(得分:2)

当调用.pressKey('tab')动作时,TestCafe将焦点设置到页面上的下一个元素。为了使代码更清晰,您可以将多个以空格分隔的键传递给pressKey操作。

我为这个stackoverflow页面创建了一个简单的例子:

import { Selector } from 'testcafe';

fixture `stackoverflow`
    .page `https://stackoverflow.com/questions/46612440/testcafe-presskey-for-multiple-presses`;

test('tab', async t => {
    await t
        .click(Selector('#search').find('[name="q"]'))
        .pressKey('tab tab tab tab tab tab tab tab tab tab tab tab tab tab');
});

这是一个演示如何工作的截屏视频(我已通过--speed选项将测试运行速度设置为0.5):https://www.screencast.com/t/dERD60nGc4f

答案 1 :(得分:1)

如果您希望放慢速度以进行直观检查,则可以交错调用wait(x)

  await t.pressKey(TAB);
  await t.wait(800);
  await t.pressKey(TAB);
  await t.wait(800);