Попытка запустить несколько тестов селена, но получение '' не может прочитать свойство 'get' of undefined ' - PullRequest
0 голосов
/ 25 апреля 2020

Я относительно новичок в селене и javascript. Я пытаюсь запустить несколько тестовых файлов Selen js последовательно. Для этого я создал еще один js файл (testAll), в котором я вызываю все экспортированные тестовые функции, которые я создал, в отдельных файлах. Я сталкиваюсь с проблемой, когда я определяю драйвер, и чувствую, что я немного в ловушке 22. Когда я определяю драйвер в самой тестовой функции asyn c, она работает нормально, но когда я передаю определение драйвера для моего файла testAll, чтобы избежать открытия нескольких браузеров windows, после чего я получаю сообщение «невозможно прочитать свойство» получить «неопределенное» сообщение. Это должно относиться к моему драйверу как к неопределенной переменной, но я не могу найти способ обойти это. Я включил пример файла test. js и мой код файла testAll. js ниже:

testAll. js:

const servicesPage = require('./servicesPage');
const organisations = require('./organisations');
const {By , Builder, until} = require('selenium-webdriver');

const allServices = async () => {
const driver = await new Builder().forBrowser('chrome').build();

try {
    await servicesPage(driver);
    await organisations(driver);
}
finally{
    await driver.quit();
}
}

allServices();

test. js:

//Setup
const {By , Builder, until} = require('selenium-webdriver');
const properties = require('../test_Properties')
const authentication = require('../mainAuth');
const assert = require('assert');

 const organisations = async (driver) => {
   try {
    //Execution
    await driver.get(properties.servicesUrls.orgsPage);
    await authentication(driver);
    await driver.wait(until.elementLocated(By.linkText('Request an organisation')), 7000);
    await driver.findElement(By.linkText('Request an organisation')).click();
    //Assert organisations request page and click back
    let rqstOrg = await driver.findElement(By.tagName('h1')).getText();
    assert.equal(rqstOrg , 'Request an organisation' , 'Request an organisation heading does not 
    match');
    await driver.findElement(By.className('link-back')).click();
    //Assert organisations page
    let orgTitle = await driver.getTitle();
    assert.equal(orgTitle , 'Organisations' , 'Organisations title does not match');
    await driver.findElement(By.linkText('Sign out')).click();
} catch (e) {
    throw e;
}
};

module.exports = organisations;
...