Я пытаюсь охватить некоторые тесты автоматизации с использованием WebdriverIo, javascript, node.js, но я столкнулся с проблемой, как я понимаю, которая называется круговые зависимости .
У меня есть случай, когда я иду между классами a до b , затем возвращаюсь к классу А.
Нужно разделить эти два раздела (шаблон объекта страницы), каждый из они содержат свои собственные методы, действия, селекторы. Когда я возвращаю страницу NewPopup, я хочу заполнить некоторые поля и после нажатия «Добавить» вернуть новый экземпляр предыдущего класса, потому что некоторые новые элементы появляются в таблице. Затем выполните некоторые новые действия в MainSection, такие как редактирование созданного всплывающего окна, удалите его и т. Д. c.
class MainSection {
addSomething() {
$('').click();
return new NewPopup();
}
editSomething() {
$('').click();
return new NewPopup();
}
}
module.exports = MainSection;
Новое всплывающее окно содержит некоторые действия, которые добавят новую строку в столбец.
const MainSection = require('./main.section');
class NewPopup {
setLabel(label) {
$('#label').setValue(label);
return this;
}
add() {
$('button=Add').click();
return new MainSection();
}
cancel() {
$('button=Cancel').click();
return new MainSection();
}
}
module.exports = AddRenditionPopup;
Поэтому в том случае, когда я хочу вернуться к новому MainSection (), возникает ошибка:
TypeError: MainSection is not a constructor
Если я использую module.exports = new MainSection()
, а затем возвращаю только MainSection, то я не могу использовать методы из возвращенного класса, потому что получают ошибку: TypeError: this.mainSection.editSomething is not a function
Я совершенно новичок в js и впервые столкнулся с термином Круговые зависимости. У кого-нибудь есть идеи, как это опустить или реализовать какое-то другое решение?