TestCafe t.eval与ClientFunction

问题描述

testcafes t.eval()函数ClientFunctions之间有什么区别?

我已经使用testcafe已有一段时间了,直到现在才偶然发现eval函数

我很好奇,但是我也有一个具体的用例,这不是这个问题的主题,但可以帮助我理解两者之间的区别。 我想做一些简单的页面操作任务,例如从测试代码中隐藏元素。 该文档明确指出,不应将ClientFunction用于此目的:“请勿在客户端功能修改经过测试的网页。而应使用测试操作与该页面进行交互。” eval函数适合于此吗?

解决方法

从本质上讲,它们是相同的。区别在于ClientFunction创建一个实例,该实例可以保存到变量中,然后重复使用多次,而t.eval可以不保存而工作。另外,t.eval会立即执行,而ClientFunction不会立即执行-它创建一个实例,您需要显式调用该实例才能运行它。