Javascript 量角器-ElementNotVisibleError:上一个禁用按钮上的元素不可见错误

Javascript 量角器-ElementNotVisibleError:上一个禁用按钮上的元素不可见错误,javascript,angularjs,selenium,jasmine,protractor,Javascript,Angularjs,Selenium,Jasmine,Protractor,我有一个表,有行,我想编辑第一行。 为此,我有一个编辑按钮开关被禁用(ng禁用),直到我选择一行。我有一个用于此按钮的复杂指令,还有一个名为“disabled”的属性。选择行后,我得到错误信息: element不可见错误:元素不可见 此外,我有一个添加按钮,它总是处于活动状态,可以选择 “添加和编辑”按钮的HTML代码为: <div class="tbl" > <div class="table"heading" > <div style="float: right

我有一个表,有行,我想编辑第一行。 为此,我有一个编辑按钮开关被禁用(ng禁用),直到我选择一行。我有一个用于此按钮的复杂指令,还有一个名为“disabled”的属性。选择行后,我得到错误信息:

element不可见错误:元素不可见

此外,我有一个添加按钮,它总是处于活动状态,可以选择

“添加和编辑”按钮的HTML代码为:

<div class="tbl" >
<div class="table"heading" >
<div style="float: right;" >
<div  ng- show="canBeResized &amp;&amp; !isExpandedTable &amp;&amp; !isMobile" class="extend"
ng - click="expand()" tabindex= "0" role= "button"  > <i class="fa fa-expand" > </i></div>
</div>
< div class="table" style= "float:right;" >
<div style="text-align: center !important;" ng- show="!(!actions || actions.length == 0)" class="ng-scope" >
<div class="skiplink" > <a href="#content" > skip navigation links< /a></div >
<ul id="action" class="table" >
<li ng- repeat="act in actions" id= "btn" class="ng-scope" >
<a ng-if="(act.command || act.commandList) &amp;&amp; (act.name != 'CheckAll' &amp;&amp; act.code != 'checkAll')" href= ""
ng - click="invokeAction(act.code || act.name, null, act.disabled, act.hasMultiSelect)" ng- disabled="isDisabledAction(act.code || act.name, act.disabled, act.hasMultiSelect)"
class="ng-scope" >
<i ng-if="act.command &amp;&amp; (act.name == 'Add' || act.code == 'add')" class="fa fa-plus ng-scope" > </i>
< span class="hidden" > Add < /span></a >
</li>
< li ng- repeat="act in actions" id= "btn" class="ng-scope" >
<a ng-if="(act.command || act.commandList) &amp;&amp; (act.name != 'CheckAll' &amp;&amp; act.code != 'checkAll')" href= ""
ng - click="invokeAction(act.code || act.name, null, act.disabled, act.hasMultiSelect)" ng- disabled="isDisabledAction(act.code || act.name, act.disabled, act.hasMultiSelect)"
class="ng-scope" disabled= "disabled" >
<i ng-if="act.command &amp;&amp; (act.name == 'Edit' || act.code == 'edit')" class="fa fa-pencil ng-scope" > </i>
< span class="hidden" > Edit < /span></a >
</li>
< /ul>
< /div>
< /div>
< div class="table" > <span class="caption"> </span><span class="tbl"></span>
<div class="btn" ng- show="" >
<button type="button" id= "btnLeft" ng- disabled="_isDisabledNextButton" aria- label="Next" class="btn btn-radius"
ng - click="prevPage()" > <i class="glyphicon glyphicon-chevron-left" > </i></button>
<!--ngRepeat: p in Pages-- >
<button type="button" id= "btnRight" ng- disabled="_isDisabledPrevButton" aria- label="Previous" class="btn btn-radius"
ng - click="nextPage()" > <i class="glyphicon glyphicon-chevron-right" > </i></button>
</div>
< /div>
< /div>
< /div>
然后选择编辑按钮,如下所示:

 var editButton = element(by.xpath('//*[@id="btnedit"]/a'));
    editButton.click();

但是,即使选择行也不行……

你能在问题中添加你的html代码,这样你的问题就有了其他需要回答的细节吗?谢谢,我已经编辑了这篇文章如果元素上有id,请使用by.id,这更准确,而不是by.xpath,它只会找到您告诉它要查找的内容,不管这是您想要的还是不想要的。您是否也可以为表添加HTML代码?另外,请包括失败的测试代码块,并明确指出哪一行生成“元素不可见”错误?谢谢。我不能发布表格的HTML代码,我不能上班。
 var editButton = element(by.xpath('//*[@id="btnedit"]/a'));
    editButton.click();