Testing 如何使用testcafe for file://和https://XHRs解决CORS问题

Testing 如何使用testcafe for file://和https://XHRs解决CORS问题,testing,cors,automated-tests,web-testing,testcafe,Testing,Cors,Automated Tests,Web Testing,Testcafe,TestCafe开发者:感谢您创建了一个很棒的、易于使用的产品 我正在使用testcafe对我的electron应用程序进行完整的端到端测试,该应用程序正在发送XHR,其中大多数端点URL都有文件://方案,其他一些则是我们控制的API 我通过在启用了--CORS的情况下启动Http服务器npm包,用文件://URL修复了CORS问题(testcafe代理用222代码响应) 我目前的问题是,当我的应用程序将XHR发送到API时,我似乎没有做任何事情来解决问题。我不想模拟API请求。在testca

TestCafe开发者:感谢您创建了一个很棒的、易于使用的产品

我正在使用testcafe对我的electron应用程序进行完整的端到端测试,该应用程序正在发送XHR,其中大多数端点URL都有
文件://
方案,其他一些则是我们控制的API

我通过在启用了
--CORS
的情况下启动Http服务器npm包,用
文件://
URL修复了CORS问题(testcafe代理用222代码响应)

我目前的问题是,当我的应用程序将XHR发送到API时,我似乎没有做任何事情来解决问题。我不想模拟API请求。在testcafe实例中不运行我的应用程序时,
file://
和API请求都没有问题

有没有(直接的)方法来解决这个问题?(另外,对于
文件://
请求是否有类似的解决方案,而不必创建Web服务器?
我假设这个问题很常见,我已经查看了testcafe和testcafe hammerhead的Github问题以及配方页面。我还尝试创建一个请求钩子,但仍然得到222响应代码

这是我的定制挂钩:

class MyHook extends RequestHook {
  constructor(requestFilterRules) {
    super(requestFilterRules, {includeHeaders: true, includeBody: true});
  }
  onRequest(event) {
    event.requestOptions.headers['Origin'] = 'file://';
    console.log(event);
  }
}
我假设我所要做的就是根据上面的代码将
Origin:
头更改为我的API可以接受的内容。(我猜测上述代码中是否存在includeHeader/include body属性或响应方法在这里没有影响,但我不确定。)


谢谢大家!

对我来说,它看起来像一只虫子。您可以发布一个端点URL的示例吗?使用本地Web服务器之前的端点示例:file:///C:/Project/src/js/modules/settings/views/home.code.page.htmlAlso,当我根据上面的代码控制台输出
事件时,我看到
\u requestInfo
有两个小写的
来源:
标题'file:///C:/Project/src/index.html'和'file://'的大写字母
Origin:
标题。我在没有做太多测试的情况下尝试了一个修复,并添加了这个。标题['access-control-allow-Origin']='*';第65行附近file-request.js中的
\u onRequest
方法。我注意到浏览器似乎对正常的
文件://
请求执行此操作。这是修复我第一次从
file://
URL到
file://
URL的请求。我仍在研究如何从
文件://
URL到
https://
URL修复CORS问题。我无法重现该问题。请创建新的错误报告,并提供可用于重现问题的示例应用:。