【发布时间】:2020-01-13 09:00:25
【问题描述】:
我们在无头模式下使用 Protractor 进行 e2e 测试。
我们要先测试身份验证。 行为如上:
1/ 用户点击浏览器上的链接 2/ 服务器将检查此用户是否通过身份验证 2.1 如果用户通过认证,会出现首页 2.2 如果没有,用户将被重定向到sso登录页面
这里的问题是,javascript 不会被执行。我尝试添加一些标志,但没有任何区别。
exports.config = {
allScriptsTimeout: 20000,
specs: [
'./e2e/account/**/account.spec.ts',
],
capabilities: {
'browserName': 'firefox',
'marionette': true,
'moz:firefoxOptions': {
args: [ "--headless"],
firefox_binary: '/opt/firefox/firefox',
binary_: '/opt/firefox/firefox',
},
acceptInsecureCerts: true,
javascriptEnabled: true,
},
directConnect: true,
baseUrl: 'http://demop-staging-ppd.com/',
framework: 'mocha',
// SELENIUM_PROMISE_MANAGER: false,
mochaOpts: {
reporter: 'spec',
slow: 3000,
ui: 'bdd',
timeout: 720000
},
beforeLaunch: function() {
require('ts-node').register({
project: 'tsconfig.e2e.json'
});
},
onPrepare: function() {
browser.driver.manage().window().setSize(1280, 1024);
// Disable animations
// @ts-ignore
browser.executeScript('document.body.className += " notransition";');
const chai = require('chai');
const chaiAsPromised = require('chai-as-promised');
chai.use(chaiAsPromised);
const chaiString = require('chai-string');
chai.use(chaiString);
// @ts-ignore
global.chai = chai;
},
useAllAngular2AppRoots: true
};
规范文件:
before(async () => {
await browser.waitForAngularEnabled(false);
});
it('should content display content ', async () => {
await browser.get('/');
browser.sleep(5000);
const content= await browser.getPageSource();
console.log(content)
});
我愿意接受任何建议,并可以为您提供任何其他信息。
[更新]
我如上所述更改我的配置文件以尝试在我的浏览器上启用 javascript。它适用于本地,但是当我在 docker image 上尝试时却没有
capabilities: {
'browserName': 'firefox',
'marionette': true,
'moz:firefoxOptions': {
args: ["--headless"],
firefox_binary: '/opt/firefox/firefox',
binary_: '/opt/firefox/firefox',
"prefs": {
"javascript.options.showInConsole": true,
"javascript.enabled": true
},
"log": { "level": "trace" }
},
acceptInsecureCerts: true,
acceptSslCerts: true,
},
【问题讨论】:
标签: javascript firefox protractor e2e-testing