我正在尝试使用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看起来像这样:
代码已执行,测试通过,但未选择任何选项。我想知道换行符是否存在任何问题,但我不知道。我究竟做错了什么?我如何改善我的“ selectItemFromDropdownListAsync”功能?