我正在使用带有Javascript的量角器,并且需要测试登录表单。启动 config.js 文件时,我看到浏览器打开,并在加载时显示登录页面的URL。加载后,我认为我的 stepdefinition.js 文件不会将密钥发送给表单,因为浏览器会立即关闭。
我使用了超时90*1000
,browser.sleep
,browser.pause
,browser.wait
,但是没有用。我也有browser.ignoreSynchronization = true
,因为它是一个没有角度的站点。
config.js:
const path = require("path");
const jsonReports = process.cwd() + "/reports/json";
const Reporter = require("../support/reporter");
exports.config = {
seleniumAddress: "http://localhost:4444/wd/hub",
capabilities: {
browserName: process.env.TEST_BROWSER_NAME || "chrome",
'chromeOptions': {
//'args': ['--user-data-dir=~/.e2e-chrome-profile'],
'args': ['--disable-web-security', '--user-data-dir=~/.e2e-chrome-profile']
}
},
framework: "custom",
frameworkPath: require.resolve("protractor-cucumber-framework"),
specs: ["../features/footer/*.feature"],
// resultJsonOutputFile: "./reports/json/protractor_report.json",
onPrepare: function() {
var chai = require('chai');
chaiAsPromised = require('chai-as-promised');
chai.use(chaiAsPromised);
chai.should();
global.expect = chai.expect;
browser.ignoreSynchronization = true;
browser.manage().window().maximize();
require('babel-register');
Reporter.createDirectory(jsonReports);
},
cucumberOpts: {
strict: true,
format: 'json:./reports/json/cucumber_report.json',
require: ["../stepDefinitions/footer/*.js", "../support/*.js"],
tags: "(@Tag1Step1 or @Tag1Step2 or @Tag1Step3)"
},
onComplete: function () {
Reporter.createHTMLReport();
}
};
stepdefinition.js:
Given('I am on a mywesbsite page', function (next){
browser.driver.get('https://myofficialrrwebsite.com/test/login.html');
browser.sleep(5000);
var bn_field = element(by.css('input[aria-labelledby="userNumber-label"]'));
var fn_field = element(by.css('input[aria-labelledby="firstName-label"]'));
var ln_field = element(by.css('input[aria-labelledby="lastName-label"]'));
bn_field.clear().sendKeys('QWWWKD');
fn_field.clear().sendKeys('Alex');
ln_field.clear().sendKeys('Black');
element(by.cssContainingText('option', 'September')).click();
element(by.cssContainingText('option', '09')).click();
element(by.cssContainingText('option', '1976')).click();
var check_on_ter = element(by.id('checkbox'));
check_on_ter.click();
var button_login_el = element(by.css('button[data-linktext="Login"]'));
button_login_el.click();
browser.sleep(5000);
next();
});
有人可以帮我解决这个问题吗?
谢谢。