首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JSON - Karate DSL中正确创建和使用动态Xpath

如何在JSON - Karate DSL中正确创建和使用动态Xpath
EN

Stack Overflow用户
提问于 2021-05-31 14:23:39
回答 1查看 35关注 0票数 1

例如,我在pages文件夹中有一个样例JSON对象,其中包含特定页面的所有XPaths。

代码语言:javascript
复制
{
    "pageTitle1": "//*[@class='page-title' and text()='text1']",
    "pageTitle2": "//*[@class='page-title' and text()='text2']",
    "pageTitle_x" : "//*[@class='page-title' and text()='%s']"
}

 * def pageHome = read('classpath:/pages/pageHome.json')
 * click(pageHome.pageTitle_x) <-- how to properly replace %s in the string?

更新:我尝试了replace函数,不确定这是否是正确的方式。

* click(pageHome.pageTitle_x.replace("%s","new value"))

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-31 14:43:34

首先,我要提一点建议。试图像这样“太聪明”会导致长期的可维护性问题。我在这里说了很多,请阅读它:https://stackoverflow.com/a/54126724/143475

也就是说,您可以编写可重用的JS函数来做所有这些事情:

代码语言:javascript
复制
* def pageTitle = function(x){ return "//*[@class='page-title' and text()='" + x "']" }

现在使用它,你可以这样做:

代码语言:javascript
复制
* click(pageTitle('foo'))

如果你重新设计这个函数,甚至这也是可能的:

代码语言:javascript
复制
* click(pageTitle(pageHome.pageTitle_x, 'foo'))

但看看事情是如何变得更加复杂和可读性降低的。是你的选择。请注意,在JS中可以做的任何事情(例如String.replace())都是可能的,这取决于您和您的创造力。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67768829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档