В настоящее время у меня есть текущий проект автоматизации, над которым я работаю, и я хочу добавить пользовательские команды в этот проект автоматизации, чтобы мой код стал чище и эффективнее.
После поиска ресурсов в Интернете для решения моей проблемы я наткнулся на функцию "addCommand", которая встроена в webDriverio.Однако, когда я попытался использовать эту функцию, я не смог добавить пользовательскую команду «щелкнуть», которая позволяла автоматизации ждать, пока элемент станет видимым, прежде чем выполнить действие щелчка по нему.Вот код, который у меня сейчас есть.
У меня есть этот код, в настоящее время написанный в моем хуке "before" в моем файле конфигурации wdio.conf.js.
browser.addCommand("click", function (selector) {
let result;
try {
if (!selector) {
// SOME CODE HERE TO WAIT FOR ELEMENT TO BE VISIBLE
// NOTHING SEEMS TO WORK
// this.waitForVisible() does not work
// browser.waitForVisible(this.element().selector.toString())
// does not work either
result = this.elementIdClick();
}
else {
browser.element(selector).waitForExist();
// if it is browser.click
browser.element(selector).waitForVisible();
result = browser.element(selector).click();
}
} catch (err) {
throw err;
}
return result;
}, true);
Я думаю, что проблема здесь связана с тем, что объект браузера может выходить из области видимости внутри функции "addCommand", я не уверен.
Я следовал этому учебнику и позаимствовал код оттуда.Пример кода оттуда работает нормально, но он не включает в себя ожидание, пока элемент не станет видимым / существует часть.Я немного изменил код, чтобы попытаться включить эту часть, но мне это не удалось.
Мне также любопытно, почему в учебнике используется код "this.elementIdClick (this.element (). Value.ELEMENT);"используется при простом выполнении this.element (). click () или this.click () не будет работать.Если кто-нибудь может объяснить это мне, я был бы очень благодарен
ПРИМЕЧАНИЕ. Я использую webdriverIO v4.Я знаю, что в v5 может быть какой-то обходной путь, но поскольку я использую инфраструктуру cucumberJS, мне нужно придерживаться версии v4, пока не будет прекращена поддержка v5 cucumberJS.
Любая помощь будет принята с благодарностью,Заранее спасибо!