如何在黄瓜js中使用xpath正确选择div?

时间:2020-05-25 15:48:47

标签: javascript xpath cucumber bdd

我正在尝试使用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看起来像这样:

enter image description here

代码已执行,测试通过,但未选择任何选项。我想知道换行符是否存在任何问题,但我不知道。我究竟做错了什么?我如何改善我的“ selectItemFromDropdownListAsync”功能?

0 个答案:

没有答案