Я относительно новичок в селене и 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;