Если метод getLink
должен читать что-то в DOM (что выходит за рамки Selector
) или должен вычислять что-то особенное в браузере, вы должны создать clientFunction
, как показано ниже (со всемикод (без импортированного кода) внутри clientFunction):
const getLink = ClientFunction((selector) => {
return new Promise( (resolve) => {
const element = selector();
// check, in developper tools, what are the available properties in element
console.log("element:", element);
// code omitted for brevity that reads data from element and does special computation from it
// build the result to be returned
const result = 'the computed link';
resolve(result);
});
});
test('test2', async t => {
const linkSelector = Selector('css selector');
const link = await getLink(inputSelector);
await t.navigateTo(link);
});
Если для метода getLink
не нужно читать что-то особенное из DOM, то создавать clientFunction
не нужно.Вам просто нужно создать вспомогательный метод и импортировать его (как предложено @AlexSkorkin):
test('test2', async t => {
const link = await mailer.getLink();
await t.navigateTo(link)
});
Обратите внимание, что t.navigate () должен ожидаться и mailer.getLink ().