有没有办法使用 RemoteWebDriver for SauceLabs 禁用 CORS 检查

Vis*_*ire 1 java selenium automation saucelabs

问题说明了一切,我正在尝试在 SauceLabs 上执行一些 selenium 测试,该测试加载了一个发出跨域请求的网页。我在想有没有办法通过代码以独立于平台的方式禁用 CORS。

Deb*_*anB 8

使用ChromeDriver / Chrome组合禁用检查时,您可以使用该--disable-web-security参数。

同源策略

content_switches.cc 中定义为:

// Don't enforce the same-origin policy. (Used by people testing their sites.)
const char kDisableWebSecurity[]            = "disable-web-security";
Run Code Online (Sandbox Code Playgroud)

代码示例:

  • 视窗:

    ChromeOptions options = new ChromeOptions();
    options.addArguments("--disable-web-security"); // don't enforce the same-origin policy
    options.addArguments("--disable-gpu"); // applicable to windows os only
    options.addArguments("--user-data-dir=~/chromeTemp"); // applicable to windows os only
    WebDriver driver = new ChromeDriver(options);
    driver.get("https://google.com");
    
    Run Code Online (Sandbox Code Playgroud)
  • 操作系统:

    ChromeOptions options = new ChromeOptions();
    options.addArguments("--disable-web-security"); // don't enforce the same-origin policy
    options.addArguments("--user-data-dir=/tmp/chrome_dev_test");
    WebDriver driver = new ChromeDriver(options);
    driver.get("https://google.com");
    
    Run Code Online (Sandbox Code Playgroud)
  • Linux

    ChromeOptions options = new ChromeOptions();
    options.addArguments("--disable-web-security"); // don't enforce the same-origin policy
    WebDriver driver = new ChromeDriver(options);
    driver.get("https://google.com");
    
    Run Code Online (Sandbox Code Playgroud)

注意:如果您出于开发/测试目的(如 AJAX 或 JSON)需要访问本地文件,则可以使用-–allow-file-access-from-files标志。

允许文件访问


参考


奥特罗

您可以在以下位置找到一些相关讨论: