#typescript #webdriver-io
#машинописный текст #webdriver-io
Вопрос:
Ладно, цель проста. Мне нужно подняться от корня, чтобы поймать его родителя, и из документации webdriver это должно выглядеть так более менее:
it('should get class from parent element', async () =gt; { const elem = await $('p'); const parent = await elem[2].parentElement(); console.log(await parent.getAttribute('class')); // outputs: "parent" });
В моем случае, когда я использую версию синхронизации, это выглядит так
public isErrorDisplayed(): boolean { const parent = browser.call(async () =gt; { return await $(this.root).parentElement(); }); return parent.getAttribute("class").includes("Mui-error"); }
Мне пришлось обернуть parentElement()
, потому что компилятор утверждал, что он вернет Promiselt;WebDriver.IOgt;
, что было бы прекрасно, если бы он не был в @wdio/sync
режиме! Так что в этом не async/await
должно быть необходимости.
Я применил «обходной путь», а затем он говорит, что:
$(...).parentElement is not a function
что на самом деле видно и предлагается vs-кодом.
Использование node 14.17.1
которого должно поддерживать @wdio/sync
режим и четко согласуется с остальной частью кода : )
Ответ №1:
Не уверен, почему вы столкнулись с этой проблемой,
Однако существует простая сокращенная альтернатива для получения родителя с помощью xpath
const elem = await $('p'); const parent = await elem[2].$('..');
Комментарии:
1. да, я сделал это так, но все равно довольно странно, почему такая простая функция работает не так, как описано в документации
Ответ №2:
describe('My Login application', () =gt; { it('should login with valid credentials', async () =gt; { await browser.url('https://the-internet.herokuapp.com/login'); await $('#username').parentElement(); }); });
Документ предназначен для асинхронности , v7 приведенный выше код работает так, как ожидалось, для синхронизации вам не нужно ждать
it('should get class from parent element', () =gt; { const elem = $('p'); const parent = elem[2].parentElement() console.log(parent.getAttribute('class')); // outputs: "parent" });
.