ошибка: UnhandledPromiseRejectionWarning: во время выполнения теста - PullRequest
0 голосов
/ 25 мая 2020

Начинаю изучать селен. пытаюсь протестировать страницу регистрации. Я создал класс страницы регистрации, в котором определил методы проверки регистрации. в классе приложения я пытаюсь запустить тест, но это не удается, появляется ошибка

var webdriver = require('selenium-webdriver'),
    registration_page = require('./Registration_page');

class Application {

    constructor() {
        this.driver = new webdriver.Builder()
            .forBrowser("chrome")
            .build();
        this.registrationPage = new registration_page.RegistrationPage(this.driver);
    }
    quit() {
        this.driver.quit();
    }

    registerNewCustomer(customer) {
        this.registrationPage.open();
        this.registrationPage.firstnameInput().sendKeys(customer.firstname);
        this.registrationPage.lastnameInput().sendKeys(customer.lastname);
        this.registrationPage.loginInput().sendKeys(customer.login);
        this.registrationPage.passwordInput().sendKeys(customer.password);
        this.registrationPage.passwordConfirmInput().sendKeys(customer.password);
    }
        app = new Application();
    app.registerNewCustomer([{firstname: 'Adam', lastname: 'Smith', login: `abcd${new Date().getTime()}`,password: 'asdfghjk', phone: '12345678'}]) 

exports.Application = Application;

UnhandledPromiseRejectionWarning: TypeError: каждый ключ должен быть номером строки; получил undefined

1 Ответ

0 голосов
/ 25 мая 2020

Я думаю, что вы передаете массив объектов вместо объекта функции registerNewCustomer.

Замените

app.registerNewCustomer([{
  firstname: 'Adam',
  lastname: 'Smith',
  login: `abcd${new Date().getTime()}`,
  password: 'asdfghjk',
  phone: '12345678'}
]) 

на

customer = {
  firstname: 'Adam',
  lastname: 'Smith',
  login: `abcd${new Date().getTime()}`,
  password: 'asdfghjk',
  phone: '12345678'
};
app.registerNewCustomer(customer);

Дополнительно sendKeys возвращает обещание, чтобы вы могли превратить registerNewCustomer в функцию asyn c и отловить любые ошибки

async registerNewCustomer(customer) {
  const page = this.registrationPage;
  await page.firstnameInput().sendKeys(customer.firstname);
  await page.lastnameInput().sendKeys(customer.lastname);
  await page.loginInput().sendKeys(customer.login);
  await page.passwordInput().sendKeys(customer.password);
  await page.passwordConfirmInput().sendKeys(customer.password);
}

customer = {
  firstname: 'Adam',
  lastname: 'Smith',
  login: `abcd${new Date().getTime()}`,
  password: 'asdfghjk',
  phone: '12345678'
};

app.registerNewCustomer(customer).catch(error => console.log(error));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...