Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 硒与CORS_Node.js_Selenium_Cors_Webdriver Io - Fatal编程技术网

Node.js 硒与CORS

Node.js 硒与CORS,node.js,selenium,cors,webdriver-io,Node.js,Selenium,Cors,Webdriver Io,我目前正在通过nodejs和selenium standalone使用webdriver io,在我尝试执行基于CORS的请求之前,这一切都可以正常工作。我目前使用firefox作为测试浏览器,由于CORS请求,它会向另一个域抛出一个错误 服务器配置为返回正确的CORS头,XHR对象配置为允许CORS。我知道,当我通过firefox/chrome手动使用该网站时,它可以正常工作,但是当我测试时,它似乎突然崩溃,这让我感到困惑,因为服务器和客户端都是为CORS配置的,并且当前的测试中没有涉及HTT

我目前正在通过nodejs和selenium standalone使用webdriver io,在我尝试执行基于CORS的请求之前,这一切都可以正常工作。我目前使用firefox作为测试浏览器,由于CORS请求,它会向另一个域抛出一个错误

服务器配置为返回正确的CORS头,XHR对象配置为允许CORS。我知道,当我通过firefox/chrome手动使用该网站时,它可以正常工作,但是当我测试时,它似乎突然崩溃,这让我感到困惑,因为服务器和客户端都是为CORS配置的,并且当前的测试中没有涉及HTTPS

那么,为了让CORS在测试浏览器中工作,我需要做什么特别的事情吗?我知道Selenium在其自己的配置文件中启动浏览器,但我在浏览器设置的配置中找不到与cors相关的任何详细信息,也找不到与cors实现相关的任何从属功能


如果有助于给出答案,我很乐意提供更多信息。

首先,CORS在您的浏览器中工作,但由于Selenium的工作方式以及您的应用程序逻辑,它们可能会有一些冲突

我建议只对硒关闭CORS检查

对于Chrome来说,通过在功能中添加“禁用web安全性”,可以很容易地关闭CORS检查。 对于Firefox,它将是“security.fileuri.strict_origin_policy”首选项(而不是功能)。例如使用


当你说首选项不是功能时,我应该在哪里设置它?事实上,它是一个功能,但有特定的名称。如果您正在使用wedbriverio,我建议您为此目的使用它(将在回答中更新如何使用)。我不记得它是如何被称为ff的,应该看看selenium网站,例如Chrome,它的“首选项”对象数组:)明天将检查它,如果它修复了它,将提供答案,感谢您抽出时间回答。告诉我它是否有用,周二我将能够在另一个笔记本上查看我的代码(我在那里使用webdriver.io)然后在这里用更好的例子告诉你:)现在似乎可以了,我得到的是正确的401响应,而不是CORS错误。
var FirefoxProfile = require('firefox-profile'),
    webdriverjs = require('webdriverjs');

var fp = new FirefoxProfile();
fp.setPreference("security.fileuri.strict_origin_policy", false);

fp.encoded(function(prof) {

    var client = webdriverjs.remote({
        desiredCapabilities: {
            browserName: 'firefox',
            firefox_profile: prof
        }
    });

    client
        .init()
        .url('http://stackoverflow.com/')
        .end();

});