量角器getText为非空元素返回空字符串

时间:2014-09-15 10:28:43

标签: selenium protractor

我在量角器中从元素中获取文本时遇到问题。对于页面的其他元素,它按预期工作,而不是这个:/

<p class="error theme-info-i ng-binding ng-scope" ng-if="firstFormError && form.$invalid" ng-click="goToErrorField(firstFormError)">
  <span class="emphasize ng-binding">User ID</span> (The user ID is required.)
</p>

我可以使用by.className找到两个元素而没有问题,并且getInnerHtml / getOuterHtml按预期工作。但是getText为两者返回一个空字符串。

3 个答案:

答案 0 :(得分:1)

找到原因......它是一个两步注册,其中第一步具有相同的通知区域并且只是隐藏。由于我无法理解的原因,开发人员更新了两个通知区域(不仅仅是当前页面上的那个),因此内部/外部HTML似乎返回了“正确的内容”,并且因为第一个区域被隐藏,所以getText按照规范返回为空。 / p>

我想我现在要提交一些内部错误报告,我们正在处理这些通知;)

答案 1 :(得分:1)

你可以尝试

var firstName = element(by.model('firstName'))
expect(firstName.getAttribute('value'))

这为您提供了输入框的值。

答案 2 :(得分:0)

有同样的问题。

期望(元件(By.css(&#39; span.emphasize.ng结合&#39;。))的getAttribute(&#39;的textContent&#39))...

似乎对我来说工作得很好(当然,如果你只有一个班级与这些班级或是第一个。否则你需要更具体。但无论如何你仍然需要解决问题尝试“ .getAttribute(&#39; textContent&#39;)“)