2016-09-19 3 views
0

나는 잠시 동안 지금 모카 casperjs을 사용하고 난 눈치 그 어떤 이유로, 때로는 코드 등에 :mocha-casperjs : 때때로/waitForXXX를 클릭하면 xpath에서 즉시 작동하지 않습니다.

casper.click(x("//a[normalize-space(text())='login']")); 

또는

casper.waitForSelector(x("//a[normalize-space(text())='login']") 

즉시 작동하지만 그것을하지 않습니다 XPath는 선택 : //은 [정상화 공간 (텍스트()) = '로그인'] "아직 한 후 5000ms

존재하지 않았다 말하는 실패 몇몇 시도, 그것은 단지 작동하지만, 그것은 이제는 더 이상 없습니다. 그것의 존재를 테스트하기 위해

if(casper.exists(x("//a[normalize-space(text())='login']"))){ 
    console.log('I am here'); 
} 

이 항상 "내가 여기입니다"를 반환 : 나는 다음과 같은 코드를 사용하기 때문에

그것은, 비동기 문제 없습니다.

아이디어가 있으십니까?

답변

0

그래서 나는 내가 가지고있는 문제가 this question. 과 관련이 있다고 생각합니다. 나는이 문제와 관련하여 더 많은 테스트와 해결책을 제시했습니다. 내 테스트가 실패 할 때마다, 내가 실제로 로그인했기 때문에 x ("// normalize-space (text()) = 'login']") 분명히 거기에 없었습니다.

아래 코드가 "내가 여기 있습니다"라는 사실은 잘못된 방식으로 수행했기 때문에 발생했습니다.

if(casper.exists(x("//a[normalize-space(text())='login']"))){ 
    console.log('I am here'); 
} 

내가 잘못 누군가를 도와 내가 완전히 놓친 수 있음을했던 또 다른 것은, 내가 casper.start를 이동 casper.run 외부 기술 ("", 기능() {...})와 같은 것입니다 :

casper.start(); 

describe("", function(){ 
    it("...", function(){..}) 
    it("...", function(){..}) 
}); 

casper.run(function(){ 
test.done(); 
}); 

이 정보가 도움이되기를 바랍니다.

감사합니다.