问题描述
testcafes t.eval()函数和ClientFunctions之间有什么区别?
我已经使用testcafe已有一段时间了,直到现在才偶然发现eval函数。
我很好奇,但是我也有一个具体的用例,这不是这个问题的主题,但可以帮助我理解两者之间的区别。 我想做一些简单的页面操作任务,例如从测试代码中隐藏元素。 该文档明确指出,不应将ClientFunction用于此目的:“请勿在客户端功能内修改经过测试的网页。而应使用测试操作与该页面进行交互。” eval函数适合于此吗?
解决方法
从本质上讲,它们是相同的。区别在于ClientFunction
创建一个实例,该实例可以保存到变量中,然后重复使用多次,而t.eval
可以不保存而工作。另外,t.eval
会立即执行,而ClientFunction
不会立即执行-它创建一个实例,您需要显式调用该实例才能运行它。