2017-11-06 11 views
1

각도기에 표시 할 모든 요소를 ​​기다리는 '/html/body/app-root/div/app-dashboard/div/div/div[1]/div[3]/div/div[1]/h5' 요소의 경우 이 요소는 사초은 어떻게 각도기에 새로운 오전과 대기 문 퍼팅에 문제가있는 것은 내 코드는 다음과 같습니다

인터넷을 검색 후, 나는 것들을 아래에 시도로 제공 :

1. browser.driver.sleep(5000); 
2. browser.driver.manage().timeouts().setScriptTimeout(55000); 
3. expect(element(by.xpath(/html/body/app-root/div/app-dashboard/div/div/div[1]/div[3]/div/div[1]/h5')).isPresent()).toBe(true); 
4. browser.manage().timeouts().implicitlyWait(5000); 

그러나 하나로 인해 또는 다른 오류 아무것도 나를 위해 일하지 않는다. 도와주세요!

답변

3

elementToBeClickable 조건을 예상 &, 그것은 아래의 코드 찾을 works.Please를 사용하여 가시성 검사 :

var targetEle = element(by.xpath(/html/body/app-root/div/app-dashboard/div/div/div[1]/div[3]/div/div[1]/h5')); 
    var EC_TIMEOUT = 5000; 
    browser.wait(EC.visibilityOf(targetEle), EC_TIMEOUT).then(function(){ 
     browser.wait(EC.elementToBeClickable(targetEle), EC_TIMEOUT).then(function(){ 
      //callback(); 
      targetEle.click().then(function() { 
       callback(); 
      }); 
     }); 
    }); 
+0

이 오류를 얻기 : 실패 : 비동기 각도 작업을 11 초 후에 완료 될 때까지 기다리는 시간이 초과되었습니다. 현재 페이지가 각도 응용 프로그램이 아니기 때문일 수 있습니다. 자세한 내용은 FAQ를 참조하십시오 : https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular 로케이터가있는 요소를 기다리는 중 - 로케이터 : By (xpath, /) 변경 사항 없음 추가 후 : allScriptsTimeout : 15000, html/body/app-root/div/app-dashboard/div/div/div [1]/div [3]/div/div [1]/h5) – Gaurav

+0

페이지가 각도가 아닌 경우 코드를 추가하십시오. browser.ignoreSynchronization = true; – Rakesh

0

두 가지 방법으로 할 수 있습니다.

  1. 요소가 DOM에 표시되는지 확인합니다.
  2. 요소가 페이지에 표시되는지 확인합니다.
우리가 사용하는 경우

1 포인트를 사용할 수 NG-경우

예 (DOM의 요소를 숨기는 경우 겨하는-이후) : -

var EC=protractor.ExpectedConditions; 
browser.wait(EC.presenceOf(element),timeout,"Custom Error Message"); 

2 포인트가 될 수있다 정상적인 방법으로 사용됩니다.

예 : -

var EC=protractor.ExpectedConditions; 
browser.wait(EC.visibilityOf(element),timeout,"Custom Error Message");