2014-06-22 4 views
-1

casperjs를 사용하여 제출하는 간단한 form이 있습니다. 같은, 나는 코드의 다음 버전이 -casperjs를 사용하여 양식 제출

casper.then(function() { 
    // fill the dropdown and click on buy now 
    this.fill('form#add-to-cart-form', { 
     'options[416]': '2884', 
     'productId': '1093' 
    }, true); 
}); 

casper.then(function() { 
    console.log("Checkout URL: ", this.getCurrentUrl()); // not going correctly 
}); 

문제는 여기에 당신이 그것을 페이지를 열고 제출하는 경우, 그것은 checkout page가는 반면 같은 URL이 프로그램에 의해 기록지고 있다는 것입니다 .

실마리가 잘못되었습니다.

답변

2

사이트는 단일 페이지 응용 프로그램 인 것 같습니다. 제출 버튼의 페이지로드가 casperjs에 의해 선택되지 않았습니다. 다음 페이지가로드 될 때까지 수동으로 기다려야합니다. 제품 페이지가 아닌 장바구니 페이지에서 찾을 수있는 선택 도구를 사용했습니다. .filled-cart

다른 문제는 채우기 방법이 양식 제출을 트리거하지 않았기 때문입니다. 수동으로 클릭해야합니다. 또한 숨겨진 필드의 채우기를 제거했습니다. 이해가되지 않습니다.

casper.then(function() { 
    // fill the dropdown and click on buy now 
    this.fill('form#add-to-cart-form', { 
     'options[416]': '2884' 
    }); 
    this.click("button[type=submit]"); 
}); 

casper.waitForSelector(".filled-cart"); 

casper.then(function() { 
    console.log("Checkout URL: ", this.getCurrentUrl()); // not going correctly 
});