美文网首页
E2E测试时跨域问题的解决办法

E2E测试时跨域问题的解决办法

作者: 桃子是水果 | 来源:发表于2019-12-18 16:42 被阅读0次
  • 使用谷歌浏览器进行E2E测试时:

    • 方法1:

      找到protractor.conf.js配置文件

      配置浏览器属性(禁用谷歌同源策略):

      capabilities: {
          'browserName': 'chrome',
          'chromeOptions':  {
            'args': ['--disable-web-security','--user-data-dir=C:/Data']
          }
        },
      

      其中--user-data-dir的值可以自定义指定。

      其余配置可参照

      https://blog.51cto.com/7308310/2325925

    • 方法2(推荐):

      创建proxy.conf.json配置文件,配置代理

      举例:angular运行在localhost:4200,需要访问地址在localhost:8080的api,apiurllocalhost:8080/api/user/,那么配置如下即可(angular代码中的url常量就不需要添加主机地址localhost:8080了,直接使用api/user/即可):

      {
          "/api/*": {  // 要访问的api的url
              "target": "http://localhost:8080", // 要访问的后台服务的主机地址
              "secure": false,
              "loglevel": "debug",
              "changeOrigin": true
         }
      }
      

      找到工程中的angular.json配置文件

      配置跨域策略属性:

      {
          "projects": {
              ...
              ...
              "project-name": {
                  "architect": {
                      "build": {
                          "configurations": {
                          "production": { ... },
                           
                          }
                      },
                      "serve": {
                          "builder": ...,
                          "options": {
                                  "browserTarget": ...,
                                  "proxyConfig": "proxy.conf.json" // 添加
                          }
                      }
                  }
              }
          }
      }
      

      配置完成之后,启动e2e测试即可解决跨域问题

  • 使用IE浏览器进行E2E测试时:

    • 方法同谷歌配置的方法2,只需要在es5配置中添加"proxyConfig": "proxy.conf.json"即可:

      {
          "projects": {
              ...
              ...
              "project-name": {
                  "architect": {
                      "build": {
                          "configurations": {
                          "production": { ... },
                           
                          }
                      },
                      "serve": {
                          "builder": ...,
                          "options": {
                                  "browserTarget": ...,
                                  "proxyConfig": "proxy.conf.json" 
                          },
                          // 添加
                          "es5": {
                                   "browserTarget": "mainpage:build:es5",
                                   "proxyConfig": "proxy.conf.json" 
                          }
                      }
                  }
              }
          }
      }
      

      配置完成后启动即可。

相关文章

  • E2E测试时跨域问题的解决办法

    使用谷歌浏览器进行E2E测试时:方法1:找到protractor.conf.js配置文件配置浏览器属性(禁用谷歌同...

  • HTML-获取iframe元素的正确方法

    跨域相关文章详解js跨域问题JavaScript跨域总结与解决办法 解释最清楚的jsonpWhat is JSON...

  • 浏览器跨域问题,教你手写实现jsonp跨域

    跨域概述为什么会有跨域跨域解决办法:1、jsonp;2、后台代理手写实现jsonp跨域(包括服务器端代码) 跨域问...

  • 跨域

    跨域 什么是跨域: 解决跨域 通过jsonp原理:在页面引入跨域js和css时,没有存在跨域问题.因此可以动态创建...

  • 单体框架应用:3.跨域问题的解决

    在前端页面发起ajax请求时会出现跨域问题。跨域问题我目前了解到的解决办法有三种:1.Nignx反向代理。2.拦截...

  • 深入跨域问题(3) - 利用 JSONP 解决跨域

    深入跨域问题(1) - 初识 CORS 跨域资源共享;深入跨域问题(2) - 利用 CORS 解决跨域深入跨域问题...

  • spring cloud gateway跨域问题

    最近,在计划用上spring cloud ,发现在gateway上出现跨域问题.解决办法如下:

  • jsonp

    参考:轻松搞定JSONP跨域请求参考:JavaScript 跨域总结与解决办法要理解跨域,先要了解一下“同源策略”...

  • js如何解决跨域问题

    JavaScript跨域总结与解决办法 什么是跨域 1、document.domain+iframe的设置 2、动...

  • 跨域调试解决办法

    进行web移动app前后端对接开发时难免会发生跨域问题,这里记录的是使用chrome进行开发调试时的解决办法 直接...

网友评论

      本文标题:E2E测试时跨域问题的解决办法

      本文链接:https://www.haomeiwen.com/subject/sypunctx.html