【问题标题】:Javascript: compare values in protractorJavascript:比较量角器中的值
【发布时间】:2016-10-17 19:44:26
【问题描述】:

我想用量角器比较放置在两个 html 元素中的文本中的两个值 (VALUE):

<p>
    VALUE and other
</p>
...
<p>
    Message about stuff containing VALUE  and usefull information.
</p>

访问文本没有问题,但如您所见,包含我的值的字符串必须以自定义方式剥离。

我用来获取文本的.getInnerHtml() 的结果总是返回 promises 没有字符串。但是我怎么不能从中得到一个字符串来修改它来与另一个修改过的字符串进行比较呢?

【问题讨论】:

  • 您的问题解决了吗?我面临同样的问题,正在等待解决方案。

标签: javascript testing protractor


【解决方案1】:

您可以创建一个通用的 getElementText 函数,然后使用 Expect 来比较您页面中的两个文本:

  getElementText = function(elementLocator) { 
  return elementLocator.getText().then(function(text) { 
     return function() { 
     return text;
   }; 
  }); 
};

 var text1 = getElementText(element(by.id('your text1 id'))); 
 // do some actions on text1
 var text2 = getElementText(element(by.id('your text2 id')));

 expect(text1).toEqual(text2); 

【讨论】:

    【解决方案2】:

    一种选择是将承诺解析为字符串数组,使用正则表达式从字符串中捕获值,然后进行比较:

    Promise.all([
        element1.getInnerHtml(),
        element2.getInnerHtml()
    ]).then(function(results) {
        var getValueFromString = function(inputString) {
            return /(\d+)/.exec(inputString)[1];
        };
        var value1 = getValueFromString(results[0]);
        var value2 = getValueFromString(results[1]);
        expect(value1).toBe(value2);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-02
      • 1970-01-01
      • 2011-12-04
      • 1970-01-01
      • 2017-10-07
      • 1970-01-01
      • 2016-07-09
      相关资源
      最近更新 更多