空手道UI自动化,是否可以使定位器动态



感谢Peter提供的API、Perf空手道框架。现在我正在尝试UI自动化,它现在看起来很完美。我有以下问题:我有一个菜单栏,里面有15个项目。它们的名称如下:

-Home
-Account
-groups
-settings
etc etc.

每个的定位器是这样的";a[名称=主页]"a[名称=账户]"a[名称=组]"。因此,name=后面的部分在本质上是动态的。所以我的问题是,有可能以某种方式制作这个动态定位器吗?

我已经编写了一个名为的功能,其中我编写了登录和选择菜单项的步骤。我想在json中传递调用特性的菜单项,如下所示:如果我想点击账户菜单

* call read(menuItem.feature) {menuItem: Account}

menuItem.feature如下所示:

Given url 'xyz'
And input (username, userID)
And input (password, password)
And click("button[name=login]")
And click("a[name=Home]")

在这里,我想在menuItem.feature上的最后一个点击步骤中使Home成为动态的,这样我就可以传递其他菜单项,并重复使用上述所有步骤/功能文件,每次都可以使用json中调用功能文件传递的不同菜单项登录。同样,这只是一个疑问。我目前已经编写了多个场景来点击菜单项,然后在调用功能时,我用@Home、@account等标签调用被调用的功能,这非常好。

此外,如果有任何其他更好的方法来实现这一点,请建议

是。让我这样说吧,你看到的input('foo', 'bar')之类的东西在幕后是纯粹的JS。因此,正常的编程语言规则适用。例如:

* def dynamic = 'foo'
* def locator = 'a[name=' + dynamic + ']'
* input(locator, 'some value')

相关内容

最新更新