Javascript字符串格式,在xpath表达式中传递方法参数

时间:2018-07-02 02:22:19

标签: javascript string formatting protractor

我正在使用Javascript和Protractor进行测试,但在格式化字符串时出现问题,这是我的代码:

this.roseGold = function (metal) {
    element(by.xpath('//*[@class="rose"][contains(text(),"14K Rose Gold")]')).click()

如何传递参数metal而不是"14K Rose Gold" 在python中,我会这样做:

this.roseGold = function (metal) {
    element(by.xpath('//*[@class="rose"][contains(text(),"%s")]' %metal)).click()

如何用Javascript获得结果?

1 个答案:

答案 0 :(得分:1)

您应该可以像这样将xpath字符串连接在一起:

this.roseGold = function (metal) {
    element(by.xpath('//*[@class="rose"][contains(text(),"'+metal+'")]')).click();

// or use util.format(), util is a build-in module of Nodejs
var util = require('util');
this.roseGold = function (metal) {
    element(by.xpath(
       util.format('//*[@class="rose"][contains(text(),"%s")]', metal)).click();

也就是说,量角器样式指南建议不要使用xpath。

考虑element(by.cssContainingText('.rose', metal)).click();