从元素量角器数组获取文本

克尔佐格尔

这是我的第一篇文章,所以请一个人来吧。:)

我是量角器的新手,所以我想寻求您的帮助。我被要求为以下代码编写测试:

<div class="content ps-container ps-active-y expand" ng-class={hide:items.length === 2}" ng-transclude="" csf-product-navigator-content="" csf-scrollbar="" style="">
 <div class="product-wrp prod-active" ng-class="{'prod-active' : active, 'odd' : (odd === true && !active), 'even' : (odd !== true && !active)}" ng-repeat="product in accounts" csf-product-navigator-item="">
  <div class="product-wrp odd" ng-class="{'prod-active' : active, 'odd' : (odd === true && !active), 'even' : (odd !== true && !active)}" ng-repeat="product in accounts" csf-product-navigator-item="">
   <div class="product-item animate-hide" ng-click="onDropdowmItemClick()" ng-transclude="" csf-product-navigator-anim-item="">
    <div class="ng-scope" ng-repeat="product in accounts" csf-product-navigator-item="">
     <div class="navigator-view ng-hide" ng-show="active">
      <div class="" ng-hide="active">
       <div class="product-choice ng-scope" ng-if="product.type !== 'SM'">
        <section class="product-name">
         <header class="ng-scope" ng-if="product.name">
          <p class="product-details" ng-show="product.type">
           <span class="ng-binding" ng-bind="product.no">PL84 9101 0003 2001 0006 1883 0004</span>
          </p>
        </section>
        <section class="product-amount">
       </div>
      </div>
     </div>
    </div>
   </div>
  <div class="product-wrp even" ng-class="{'prod-active' : active, 'odd' : (odd === true && !active), 'even' : (odd !== true && !active)}" ng-repeat="product in accounts" csf-product-navigator-item="">
  <div class="product-wrp even" ng-class="{'prod-active' : active, 'odd' : (odd === true && !active), 'even' : (odd !== true && !active)}" ng-repeat="product in accounts" csf-product-navigator-item="">
  <div class="product-wrp odd" ng-class="{'prod-active' : active, 'odd' : (odd === true && !active), 'even' : (odd !== true && !active)}" ng-repeat="product in accounts" csf-product-navigator-item="">
  <div class="product-wrp even" ng-class="{'prod-active' : active, 'odd' : (odd === true && !active), 'even' : (odd !== true && !active)}" ng-repeat="product in accounts" csf-product-navigator-item="">

目标是获得下拉列表中的产品数量。

所以我想我应该在容器中获取所有元素,然后使用函数来遍历它们。

这是我的代码:

功能(iOwe):

var iOwe = function () {
  this.accNo = element(by.className('content ps-container ps-active-y expand')).all(by.className('product-item animate-hide'))
}

规格(iOwe):

it('should display accounts numbers on dropdown list', function () {
  expect(iOwe.accNo.count()).not.toBe(0);
  iOwe.accNo.each(function(elem) {
    elem.element(by.className('product-details')).getText()
    .then
    (function (text){
        console.log(text);
    });
  });

问题是每次我运行测试时,我都会在控制台中得到不同的输出。仅获取前3/4个字符串(应为7),其余部分为空。

感谢帮助

编辑:我通过添加browser.sleep(5000);每次控制台打印字符串来检查测试期间到底发生了什么,并且令人惊讶的是,我发现我必须实际看到(在浏览器中)以下帐户以允许测试读取它。

克尔佐格尔

我对这个问题感到不安,这与选择器/匹配器无关。

正如我根据这个发现文章以.getText()u必须真正看到在浏览器中的元素,否则将返回空字符串。

我决定找到另一种方式来获取文字,

.getAttribute()

得到的字符串。

基本上我改变了:

elem.element(by.css('span.ng-binding')).getText()

elem.element(by.css('span.ng-binding')).getAttribute('outerHTML')

然后返回带有accnumber的字符串。

但是...这不是我想要的。我想检查该元素是否实际上在浏览器中可见,并且下面的解决方案不起作用。

然后我发现了这个问题,它显示了如何向下滚动到您要检查的浏览器中的元素。

所以我编辑了我的代码:

it('should display accounts numbers on dropdown list', function () {
  expect(iOwe.accNo.count()).not.toBe(0);
  iOwe.accNo.each(function(elem) {
    browser.executeScript('arguments[0].scrollIntoView()', elem.getWebElement()) //Scroll down to element
    .then
    elem.element(by.className('product-details')).getText()
    .then
    (function (text){
      console.log(text);
    });
});

这是我的问题的答案。

感谢帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

量角器无法单击元素,但能够获取文本

来自分类Dev

在量角器的角度$超时期间获取元素的文本

来自分类Dev

量角器:获取警报文本?

来自分类Dev

量角器如何从div获取文本?

来自分类Dev

从量角器中的Repeater获取文本

来自分类Dev

从模态获取文本:量角器/ Webdriver

来自分类Dev

量角器获取通知文本

来自分类Dev

量角器:获取元素的ID

来自分类Dev

量角器获取iconbutton元素

来自分类Dev

量角器在转发器数组中按模型获取元素

来自分类Dev

量角器-在ng-repeat中获取子元素的文本

来自分类Dev

根据getText()的文本从量角器中的ElementArrayFinder获取特定元素

来自分类Dev

量角器:无法使用量角器获取所有元素

来自分类Dev

包含任何文本的元素的量角器预期条件

来自分类Dev

在量角器中将元素文本转换为对象

来自分类Dev

量角器:如何从 div 元素存储数字文本

来自分类Dev

量角器:获取包含多个I标签的锚文本

来自分类Dev

使用量角器获取跨度中的文本

来自分类Dev

量角器无法从列表中获取输入文本

来自分类Dev

量角器-选择文本

来自分类Dev

量角器-如何获取刚刚执行动作的元素?

来自分类Dev

用量角器获取元素的偏移位置

来自分类Dev

用量角器获取伪元素的值

来自分类Dev

量角器-获取列表中的特定元素

来自分类Dev

量角器:获取没有特定类的元素

来自分类Dev

获取量角器中的元素属性值

来自分类Dev

量角器获取元素的比例或比例宽度和高度

来自分类Dev

量角器按标题获取div元素

来自分类Dev

量角器-如何获取刚刚执行动作的元素?