2016-11-16 6 views
0

Selenium + mocha로 URL을 여는 데 문제가 있습니다. 이것은 내가 사용하고있는 코드 라인입니다.Firefox에서 Selenium get (url) 문제가 발생했습니다.

return driver.get('http://localhost/ClickSuscribe/#/MisProductos') 

각형 URL에는 몇 가지 문제가 있지만 해결책을 찾지 못했습니다.

오류는이 테스트 케이스입니다 Error: timeout of 40000ms exceeded. Ensure the done() callback is being called in this test.

입니다 :

it("Is visible", function() { 
     if(viable) 
     { 
      return driver.findElements(webdriver.By.id('activarMiSitio')).then(function(misProductos){ 
       misProductos[0].getAttribute("class").then(function(webElement){ 
        if(webElement==='ng-hide') 
        { 
         console.log('Element not found'); 
        } 
        else{ 
         console.log('Element exists'); 
        } 
       }).then(function(){ 
        driver.sleep(500); 
        //return driver.get('http://localhost/ClickSuscribe/#').catch(r => console.log(r)); 
        return driver.get('http://localhost/ClickSuscribe/#/MisProductos').catch(r => console.log(r)); 
       });/*.then(function(){ 
        driver.sleep(2000); 
        return driver.getCurrentUrl(); 
       }).then(function(currentUrl){ 
        driver.sleep(1000); 
        console.log(currentUrl); 
       });*/ 
      }); 
     } 
     return console.log("No está loggeado"); 
    }); 

PS :이 크롬과 IE에서 작업을 수행합니다. 셀렌에 앵커 또는 파운드 ('#')가있는 URL을 처리하는 문제가있는 것으로 보입니다.

+0

은 메소드 또는 스크립트 실행을 가져 오는 데 문제가 있습니까? –

+0

@MohamedELAYADI 잘 모르겠습니다 만 get 메소드를 사용하는 것이 가장 가능성이있는 것으로 보입니다. get 메소드가있을 때 약 1 분 동안 멈추어 다음 테스트를 계속하기 때문입니다. –

답변

0

오류가

이 완료() 콜백이 시험에서 호출되고 있는지 확인했다.

당신은 다음과 같이 done 콜백을 주입 할 수

it("Is visible", function(done) { 
    //... 
}); 

과의 시간 제한을 설정 한 시험 당 일 :

describe('...', function(){ 
    this.timeout(15000); 

    it('...', function(done){ 
    this.timeout(15000); 
    setTimeout(done, 15000); 
    }); 
}); 

더 많은 정보를 찾을 수 in the docs

또한 known issues이기 때문에 종속성을 업그레이드하는 것이 좋습니다.

+0

이 답변의 전반부는 잘못되었습니다. 오류 메시지는 오해의 소지가 있습니다. OP는 약속을 사용하고 있으며, 모카가 비동기 테스트를 기다리기 위해 필요한 약속입니다. 특히'driver.get (...)'바로 다음에'done()'을 호출하면'get' 연산이 완료되기 전에 테스트가 완료됩니다. – Louis

+0

고마워, 나는 대답을 바꿨지 만 지금은 더 이상 도움이 안 될 것 같습니다. –

+0

모카와 함께 이해하면 정확한 내용을 반환해야합니다. 나는 또한 'after (function (done) { driver.quit(). then (done); }})를 사용하고 있습니다. –