2014-11-28 2 views
0

Ive는 각도기를 사용하기 시작했으며 자식 요소의 특정 요소가 포함 된 자식 요소의 부모 요소를 선택할 수 있기를 원합니다. 그래서 텍스트로 내부의 범위를 가지고있는 링크를 선택할 수 있도록하려면각도기 - 관련 요소를 선택하는 가장 좋은 방법

<ul class="content"> 
    <li ng-if="case.taskStatus.outstanding &gt; 0" has-permission="task.get" class="task-list ng-scope" ng-repeat="case in cases"> 
    <h3 class="ng-binding">Case #7000-0000-1060</h3> 
    <ul> 
     <li error-msg="task.errorMessages.status" error-handler="" ng-if="task.status != 'Completed'" class="task-list-task ng-scope" ng-repeat="task in case.tasks"> 
     <h4 class="ng-binding">Create physical case file</h4> 
     <h4 class="ng-binding"></h4> 
     <p> 
      <span ng-show="task.assignee" class="ng-binding">Assigned to case viewer</span> 
      | 
      <span ng-show="task.dueDate" class="ng-binding">To be completed by 28 November 2014</span> 
     </p> 

     <ul class="task-actions"> 
      <li has-permission="task-assign.put" class="icon-button"> 
       <a confirmation-message="task.name" confirmation-type="'task'" opg-click-confirmation="markAsComplete(case.caseId, task, case.tasks, cases)" class="opg-icon ng-isolate-scope" href="">Complete <span class="accessible-text ng-binding">Create physical case file</span></a> 
      </li> 
      <li has-permission="task-unassign.put" class="icon-button"> 
       <a ng-click="selectForAllocation(case.caseId, task, case.tasks)" ng-class="{ active: task.selected }" class="opg-icon" href="">Allocate <span class="accessible-text ng-binding">Create physical case file</span></a> 
      </li> 
     </ul> 
    </li> 
    </ul> 
</li>< 
</ul> 

아래의 HTML을 감안할 때 "실제 사건 파일 만들기"를 참조하십시오. 분발기의 addLocator 메소드를 사용하여 해당 요소를 반환하는 사용자 정의 함수를 작성할 수 있어야합니다. http://angular.github.io/protractor/#/api?view=ProtractorBy.prototype.addLocator

또 다른 방법이 있습니까? 아니면 방금 addLocator 메서드를 사용해야합니까? 내 프로젝트에서

+0

그렇다면 부모 요소가 무엇인지 이미 알고 있습니다. 'id = "parent"'속성을주고 (예를 들어) 여기에'var parnt = document.getElementById ("parent");'를 사용하면 접근 할 수 있습니다. 아니면 당신이 묻고있는 것에 관해서 뭔가를 놓치고 있습니까? – vernonner3voltazim

답변

0

나는 XPath를 사용하지 선호하지만,이 문제를 해결할 수 있습니다 뭔가 :

HTML 코드가 "고정"되어있는 경우 (사용자와 상호 작용할 때 변화가 예상되지 않음)
// Select an element by css + text. Then get the parent. 
element(by.cssContainingText('h4', 'Create physical case file')) 
    .element(by.xpath('..')) 
    .element(by.XXX) // get anything below the parent 
관련 문제