Чтобы ваш скрипт работал так, как вы хотели, вам нужно правильно получить доступ к вашему webElement.
документы скажем,
Любые аргументы, предоставленные дополнительнок сценарию будут включены как аргументы сценария, и на него можно ссылаться, используя объект аргументов
Поэтому вам необходимо использовать объект arguments
в вашем сценарии.Вот так:
async getComputedStyleVisibility(elementToCheck) {
return await browser.executeScript(
() => (window.getComputedStyle(arguments[0]).visibility),
await elementToCheck.getWebElement()
);
}
НО
Если вы не ограничены каким-либо образом только в использовании browser.executeScript()
, вам следует переосмыслить свой подход.
protractor
предоставляет API
для проверки наличия определенного элемента или аналогичного.
Проверьте элемент, который должен присутствовать и быть видимым для пользователя:
element(by.css("#a")).isDisplayed()
.then(isDisplayed => console.log("element displayed?", isDisplayed))
.catch(err => console.error("Some error happedn. Element not present..", err))
Вы должны использовать browser.executeScript()
только в качестве последнего средства на мой взгляд.Большинство общих вещей, таких как щелчок, проверка наличия и т. Д., Уже есть в удобной форме, предоставленной protractor
.