例如,我在pages文件夹中有一个样例JSON对象,其中包含特定页面的所有XPaths。
{
"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"))
发布于 2021-05-31 14:43:34
首先,我要提一点建议。试图像这样“太聪明”会导致长期的可维护性问题。我在这里说了很多,请阅读它:https://stackoverflow.com/a/54126724/143475
也就是说,您可以编写可重用的JS函数来做所有这些事情:
* def pageTitle = function(x){ return "//*[@class='page-title' and text()='" + x "']" }现在使用它,你可以这样做:
* click(pageTitle('foo'))如果你重新设计这个函数,甚至这也是可能的:
* click(pageTitle(pageHome.pageTitle_x, 'foo'))但看看事情是如何变得更加复杂和可读性降低的。是你的选择。请注意,在JS中可以做的任何事情(例如String.replace())都是可能的,这取决于您和您的创造力。
https://stackoverflow.com/questions/67768829
复制相似问题