Я пытаюсь написать несколько тестов с использованием Cucumber JS. Мой веб-сайт построен на Vue и использует компоненты Vuetify. У меня есть раскрывающийся список, и мне нужно выбрать из него элемент. Vuetify генерирует компоненты по-своему, поэтому я написал простой код для выбора элемента:
Given ('I select {string} from {string} dropdown list', async function (selectedItem, listName) {
await selectItemFromDropdownListAsync(selectedItem, listName);
});
const getWebElementByXpathAsync = async function (xpathSelector) {
return await driver
.findElement(By.xpath(xpathSelector));
}
const selectItemFromDropdownListAsync = async function (item, listName) {
var listLabelHook = await
getWebElementByXpathAsync(`//label[contains(text(), '${listName}')]/parent::*`);
listLabelHook.click();
return driver
.wait(until
.elementLocated(By
.xpath(`//div[contains(string(), '${item}')]`)), 500)
.then(async function () {
var listItemHook =
await getWebElementByXpathAsync(`//div[contains(string(), '${item}')]`);
await listItemHook.click();
});
}
//And my step: "And I select "Zmiana A" from "Zmiana" dropdown list" for a specific case described below
Код работает, но есть один случай, когда сгенерированный html немного странный и желаемый вариант не выбирается. Сгенерированный html выглядит так:
Код выполняется, тест проходит, но ни один из вариантов не выбран. Интересно, есть ли проблемы с символами новой строки, но я не знаю. Что я делаю не так? Как я могу улучшить функцию selectItemFromDropdownListAsyn c?