Selenium Standalone 与 CORS
Selenium Standalone with CORS
我目前正在通过 nodejs 和 selenium 独立使用 webdriver io,在我尝试执行基于 CORS 的请求之前一切正常。我目前使用 firefox 作为测试浏览器,由于对另一个域的 CORS 请求,它会抛出错误。
服务器配置为 return CORS 的正确 headers 并且 XHR object 配置为允许 CORS。我知道这些工作是因为当我通过 firefox/chrome 手动使用该站点时它按预期工作,但是当我测试它时它似乎爆炸了,这让我感到困惑,因为服务器和客户端是为 CORS 配置的,并且那里当前测试中没有涉及HTTPS。
那么我需要做些什么才能让 CORS 在测试浏览器中正常工作?我知道 Selenium 在其自己的配置文件中启动浏览器,但我在浏览器设置的配置中找不到与 cors 相关的任何详细信息,也找不到与 CORS 实现相关的任何 dependentFeatures。
如果能帮助得到答案,我很乐意提供更多信息。
首先,CORS 在您的浏览器中运行,但由于 Selenium 的工作方式和您的应用程序逻辑,它们可能会有点冲突。
我建议仅针对 Selenium 关闭 CORS 检查。
对于 Chrome,通过向功能添加 "disable-web-security" 可以轻松关闭 CORS 检查。
对于 Firefox,它将是 "security.fileuri.strict_origin_policy" 首选项(不是功能)。例如使用 https://github.com/saadtazi/firefox-profile-js
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://whosebug.com/')
.end();
});
我目前正在通过 nodejs 和 selenium 独立使用 webdriver io,在我尝试执行基于 CORS 的请求之前一切正常。我目前使用 firefox 作为测试浏览器,由于对另一个域的 CORS 请求,它会抛出错误。
服务器配置为 return CORS 的正确 headers 并且 XHR object 配置为允许 CORS。我知道这些工作是因为当我通过 firefox/chrome 手动使用该站点时它按预期工作,但是当我测试它时它似乎爆炸了,这让我感到困惑,因为服务器和客户端是为 CORS 配置的,并且那里当前测试中没有涉及HTTPS。
那么我需要做些什么才能让 CORS 在测试浏览器中正常工作?我知道 Selenium 在其自己的配置文件中启动浏览器,但我在浏览器设置的配置中找不到与 cors 相关的任何详细信息,也找不到与 CORS 实现相关的任何 dependentFeatures。
如果能帮助得到答案,我很乐意提供更多信息。
首先,CORS 在您的浏览器中运行,但由于 Selenium 的工作方式和您的应用程序逻辑,它们可能会有点冲突。
我建议仅针对 Selenium 关闭 CORS 检查。
对于 Chrome,通过向功能添加 "disable-web-security" 可以轻松关闭 CORS 检查。 对于 Firefox,它将是 "security.fileuri.strict_origin_policy" 首选项(不是功能)。例如使用 https://github.com/saadtazi/firefox-profile-js
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://whosebug.com/')
.end();
});