Angular 7:无法更改量角器中的baseUrl(路由器使用哈希)

时间:2019-03-20 22:36:28

标签: angular protractor

我尝试在protractor.conf.js中更改baseUrl:

exports.config = {
  allScriptsTimeout: 11000,
  specs: [
    './src/**/*.e2e-spec.ts'
  ],
  capabilities: {
    'browserName': 'chrome'
  },
  directConnect: true,
  baseUrl: 'http://localhost:4200/#',
  framework: 'jasmine',
  jasmineNodeOpts: {
    showColors: true,
    defaultTimeoutInterval: 30000,
    print: function() {}
  },
  onPrepare() {
    require('ts-node').register({
      project: require('path').join(__dirname, './tsconfig.e2e.json')
    });
    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
  }
};

但是无论我做什么,我都无法正常工作。我尝试通过传递相对网址来导航我的Page对象:

browser.get('/authentication/sign-up');

,但是附加到其的baseUrl仍然是默认的http://localhost:4200,而不是http://localhost:4200/#

2 个答案:

答案 0 :(得分:0)

browser.waitForAngularEnabled(false);添加到您的配置文件中,并保留baseUrl: 'http://localhost:4200/',

onPrepare() {
 browser.waitForAngularEnabled(false);
    require('ts-node').register({
      project: require('path').join(__dirname, './tsconfig.e2e.json')
    });
    jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
  }
};

希望这对您有帮助

答案 1 :(得分:0)

我在针对其编写测试的应用程序之一中遇到了此问题。简短的答案是像这样直接使用驱动程序:

browser.driver.get('someUrl')

这很有可能触发浏览器生成的警报,该警报可以由驱动程序以及以下代码消除:

const alertObject = browser.driver.switchTo().alert();
await alertObject.accept();

希望这会有所帮助