Javascript 在量角器中,如何检查aria hidden=";“真的”;或;假;

Javascript 在量角器中,如何检查aria hidden=";“真的”;或;假;,javascript,selenium,protractor,Javascript,Selenium,Protractor,我需要检查aria hidden=“true”或“false”,具体取决于单击 <tr ng-class="{'submitted' : (position.submitted) }" ng-repeat- start="position in demandFactory.openings | orderBy:sortType:sortReverse"> <td><span ng-click="openDemand(po

我需要检查aria hidden=“true”或“false”,具体取决于单击

 <tr ng-class="{'submitted' : (position.submitted) }" ng-repeat- 
 start="position in demandFactory.openings | orderBy:sortType:sortReverse">
                    <td><span ng-click="openDemand(position.demandID)"><span ng-show="position.demandID == demandFactory.selectedDemand">
                            <span class="glyphicon glyphicon-menu-down glyphicon-small" aria-hidden="true"></span>
                        </span>
                        <span ng-show="position.demandID != demandFactory.selectedDemand">
                            <span class="glyphicon glyphicon-menu-right glyphicon-small" aria-hidden="true"></span>
                        </span></span>
                        <span class="jobName">&nbsp{{ position.name }} </span>
                    </td>
                    <td>{{ position.demandID }}</td>
                    <td>{{ position.rotation }}</td>
                    <td>{{ position.headcount }}</td>
                    <td>{{ position.num }}</td>
                    <td>{{ position.approved }}</td>
                </tr>

使用量角器,您可以使用文档中的
getAttribute
getText()
返回元素内部的文本,而不是元素属性

你可以这样做

var val;
aPromiseOfRow.getAttribute('aria-hidden').then(function(attrValue) {
   val = attrValue;
});
  • 使用文档化的
    Get(index
    获取要测试的元素
  • expect()中获取属性
  • 根据您的用例适当地使用像toBe/toEqual这样的匹配器
伪代码:

var aPromiseOfRow = element.all(by.repeater('position in demandFactory.openings').get(0);
expect(aPromiseOfRow.getAttribute('aria-hidden')).toEqual('true');
如果您希望访问该值以供以后使用,请使用类似的方法

var val;
aPromiseOfRow.getAttribute('aria-hidden').then(function(attrValue) {
   val = attrValue;
});

希望有帮助…

在同一个td中有两个跨度。我需要检查两个跨度的aria隐藏。它们是嵌套的跨度。建议为
元素添加适当的CSS类/id选择器。然后使用
aPromiseOfRow.element(by.CSS(“此处的跨度选择器”)。getAttribute(“aria隐藏”)
。逻辑非常简单。基本上获取元素,然后调用
getAttribute(“aria hidden”)
。失败:aPromiseOfRows.element不是一个函数。我遇到一个错误,这是因为
aPromiseOfRows
是一个元素数组。您需要的是
aPromiseOfRows.get(0)
获取该数组中的第一个元素。然后可以使用
.element(by.css('span-selector'))
进入span元素。请注意其
aPromiseOfRow
上的响应,而不是
aPromiseOfRow
。更轻松的是,建议对您正在使用的代码多加思考。如果不理解您正在编写的内容,那么在编写过程中几乎没有任何价值:)下面是我所做的。我使用定位器找不到任何元素:By(css选择器,.glyphicon-glyphicon-menu-down-glyphicon-small)var-aPromiseOfRows=element.all(By.repeater('position in-demandFactory.openings')。行(0));var aPromiseOfRow=aPromiseOfRows.get(0);log(aPromiseOfRow.element(by.css('.glyphicon-glyphicon-menu-down-glyphicon-small')).getAttribute(“aria-hidden”);可能重复@JeffC标记的问题,请通读现有问题和答案。最有可能的是,你也会得到你正在寻找的解决方案。