我正在尝试编写TestCafe Javascript 来测试使用键盘作为唯一导航的网页(即“通过选项标签”)。
TestCafe 运行这些测试,但它们运行得非常快(最多 5 秒),并且屏幕上没有任何反应。所以我想知道它是否真的有效。
最重要的是,我正在尝试找到一种方法来干燥我的代码。根据我在文档中读到的内容,每次我想按下一个键时,我都需要调用 .pressKey('tab')。如果我需要连续点击 5 次“制表符”,我的代码中有 5 行。有没有办法消除这种不必要的重复?
谢谢!
我正在尝试编写TestCafe Javascript 来测试使用键盘作为唯一导航的网页(即“通过选项标签”)。
TestCafe 运行这些测试,但它们运行得非常快(最多 5 秒),并且屏幕上没有任何反应。所以我想知道它是否真的有效。
最重要的是,我正在尝试找到一种方法来干燥我的代码。根据我在文档中读到的内容,每次我想按下一个键时,我都需要调用 .pressKey('tab')。如果我需要连续点击 5 次“制表符”,我的代码中有 5 行。有没有办法消除这种不必要的重复?
谢谢!
.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
如果您想放慢速度以进行目视检查,您可以将调用交错到 wait(x)
await t.pressKey(TAB);
await t.wait(800);
await t.pressKey(TAB);
await t.wait(800);
等等