量角器,测试之前浏览器已关闭

时间:2018-08-03 13:15:44

标签: javascript google-chrome protractor cucumber selenium-chromedriver

我正在使用带有Javascript的量角器,并且需要测试登录表单。启动 config.js 文件时,我看到浏览器打开,并在加载时显示登录页面的URL。加载后,我认为我的 stepdefinition.js 文件不会将密钥发送给表单,因为浏览器会立即关闭。

我使用了超时90*1000browser.sleepbrowser.pausebrowser.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();
}); 

有人可以帮我解决这个问题吗?

谢谢。

0 个答案:

没有答案