NodeJS 使用函数参数创建动态XPath(WebdriverIO)

fdx2calv  于 2023-01-04  发布在  Node.js
关注(0)|答案(1)|浏览(129)

因此,我正在自动测试一个指挥中心风格的Web应用程序(基本上是防呆的SQL语句,在前端有大量的字段验证)。在20个类别下有125个这样的语句,当单击这些语句时,展开/折叠以显示/隐藏其子命令。(以及cubber传递的参数上的125大小写开关)是否有办法使用cubber传递的参数动态创建XPath选择器?例如:

When(/^I select (.*) menu item$/, async (menuItem) => {
    switch (menuItem) {
        case "Activate User":
            await PageObject.element1.click();
            break;
        case "Change Email Address":
            await PageObject.element2.click();
            break;
        case "Change User Password":
            await PageObject.element3.click();
            break;
           //ETC 122 more times

使用单行查找并单击[li]元素会容易得多,例如:

When(/^I select (.*) menu item$/, async (menuItem) => {
            await browser.$('//li[contains(text(),\'' + menuItem + '\')]').click();
}

但是这不起作用。有人知道为什么吗?或者有什么建议可以让它起作用吗?谢谢,谢普

cbjzeqam

cbjzeqam1#

When(/^I select \"([^\"]*)\" menu item$/,  async function (menuItem) {
    const menu_item = await $('//li[contains(text(),\'' + menuItem+ '\')]')
    console.log(menu_item )
    await menu_item.click()
});

我的代码工作.我希望这可以解决你的问题

相关问题