2011-10-27 31 views
5

Tôi chưa tìm thấy đề xuất rõ ràng và rõ ràng để mô phỏng nút 'Quay lại' của trình duyệt trong HtmlUnit. Bạn đã làm điều này à? Nếu vậy, làm thế nào?Làm cách nào để mô phỏng nút quay lại của trình duyệt trong HtmlUnit?

Điều tốt nhất mà tôi đã đưa ra là để thực hiện javascript trên trang hiện tại:

ScriptResult result = currentPage.executeJavaScript("javascript:window.history.back();"); 
currentPage = (HtmlPage)result.getNewPage(); 

Có một phương pháp đề nghị quay trở lại một trang trong lịch sử với HtmlUnit? Các tác động của việc quay trở lại với mã ở trên là gì? Trong khi tôi không thuyết phục bản thân mình rằng HtmlUnit thực sự thực hiện bất kỳ giả lập chính xác nào về cách giải thích javascript của các trình duyệt khác nhau, tôi có thể sử dụng khả năng đầy đủ của HtmlUnit để mô phỏng nút quay lại của trình duyệt bằng cách sử dụng mã trên không? Có cách nào để có được mô phỏng tốt hơn về nút quay lại của trình duyệt không?

Ngoài ra, tôi đã nhận thấy lớp Lịch sử trong HtmlUnit, nhưng nó có vẻ khá vô giá trị. Suy nghĩ?

Trả lời

2

Có lẽ tôi hơi trễ một chút, nhưng điều này cũng hữu ích cho người khác. Bạn có thể quay lại lịch sử bằng cách truy cập lịch sử của WebWindow như sau:

webClient.getWebWindows().get(0).getHistory().back(); 

Còn có các phương pháp hữu ích khác nữa. Bạn có thể xem API here.

+0

Bằng cách thực hiện điều này, đối tượng "Lịch sử" được trả lại. Thay vào đó, chúng tôi sẽ trả lại trang trước đó như thế nào? – Ctech45

Các vấn đề liên quan