【问题标题】:Javascript strings formatting, pass methods parameter in xpath expressionJavascript字符串格式化,在xpath表达式中传递methods参数
【发布时间】:2018-07-02 02:22:18
【问题描述】:

我正在使用 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 中达到该结果?

【问题讨论】:

    标签: javascript string formatting protractor


    【解决方案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();
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多