运行首个TestCafe脚本报Failed to find a DNS-record错误
错误原因
Failed to find a DNS-record for the resource报错的核心触发原因是TestCafe无法解析你配置的测试起始页域名,你的代码中把测试地址写为https://www.google.com1,com1不是合法的公开顶级域名,公共DNS服务器不存在该域名的解析记录,自然无法建立连接。
修复步骤
- 修正测试页URL拼写:将错误域名
www.google.com1替换为可正常访问的合法地址,若要访问谷歌则改为https://www.google.com,若测试本地项目则填写本地服务的可访问地址(如http://localhost:8080),确保域名拼写正确、当前网络环境下可正常解析访问。 - 清理冗余无效导入:代码中导入的
Selector未被使用,且page不需要单独从testcafe包导入,fixture链式调用的page方法为内置能力,冗余导入虽不会直接触发DNS错误,但会增加不必要的代码加载开销。 - 规范代码书写格式:原代码中fixture调用的结束分号单独换行,属于不规范写法,易触发JS隐式解析异常,调整为链式调用统一缩进、分号跟在方法末尾即可。
修复后完整代码
import { Selector, fixture, test } from 'testcafe'; fixture `getting started` .page `https://www.google.com`; // 可替换为你实际需要测试的合法可访问地址 test('my test1', async (t) => { await t.wait(3000); // 后续可补充页面交互、元素断言等测试逻辑 });
修复后仍报错的补充排查点
如果修正URL后依然出现同类DNS解析错误,可按以下顺序排查:
- 确认运行TestCafe的设备网络正常,可以直接在浏览器打开配置的测试地址,不存在域名拦截、网络隔离问题
- 若测试本地/内网服务,确认对应服务已正常启动,若通过自定义hosts做了域名映射,需检查hosts配置的IP与域名对应关系是否正确
- 若网络环境需要通过代理访问外网/内网服务,启动TestCafe时追加代理参数即可:
testcafe chrome ./your-test-file.js --proxy 你的代理服务地址
内容的提问来源于stack exchange,提问作者Prateeksh
相关产品推荐
相关产品推荐

