2011-10-09 16 views
10

Tôi đã nghĩ đến việc viết một số kiểm tra giao diện người dùng trong backbone.js và jquery. Họ có thể không phải là cách tốt nhất để làm điều đó nhưng nó là một cái gì đó mà tôi đã suy nghĩ về - để tự động hoá các bài kiểm tra mà không cần ghi lại và phát lại - thông qua mã đơn giản.Nhấp vào 'OK' trên cảnh báo hoặc xác nhận hộp thoại thông qua jquery/javascript?

Điều duy nhất khiến tôi gãi đầu khi sử dụng phương pháp này là: Trong một số hộp thoại xác nhận/cảnh báo sử dụng '(thực hiện) sẽ hiển thị. Tôi muốn nhấp vào 'Ok' và tiếp tục luồng - điều này thậm chí có thể thực hiện được thông qua mã javascript đơn giản không? Làm sao?

Lưu ý: Tôi biết thư viện kiểm tra GUI tồn tại, nhưng tôi muốn biết cách sử dụng nó chỉ bằng mã jQuery/javascript, nếu có thể.

+1

+1 cho cố gắng một cách tiếp cận khác nhau để giao diện người dùng thử nghiệm – joshin4colours

Trả lời

14

Theo tôi biết nếu bạn sử dụng lệnh gọi tiêu chuẩn alert(), bạn không thể kích hoạt nhấp chuột "OK" vì lệnh gọi cảnh báo chặn vòng lặp sự kiện JS bình thường.

Tuy nhiên bạn nên có thể thay thế window.alertwindow.confirm với chức năng riêng của mình mà không làm gì:

window.alert = function() { 
    console.log.apply(console, arguments); 
}; 

Nơi này ở phía trên cùng của JS của bạn trước khi bất cứ điều gì khác được nạp và bất kỳ cuộc gọi tiếp theo để alert() hoặc confirm() sẽ gọi những thay thế này.

+0

hmmmm ... nhưng tôi sẽ phải tạo ra những thay đổi tất cả thông qua các mã. Những cảnh báo đó không phải là lỗi mà là một phần thực tế của ứng dụng, trong giai đoạn đầu của nó. Chúng sẽ được thay đổi thành cảnh báo tùy chỉnh sau này ... điều này sẽ không thể xảy ra nếu tôi đoán – PhD

+0

không, vấn đề là bạn chỉ thực hiện thay đổi này một lần nếu bạn đang ở chế độ gỡ lỗi và mã đó ở trên _replaces_ tất cả các lời gọi sau đó của 'cảnh báo() '. – Alnitak

+0

Ahhhh Tôi hiểu rồi! Ngọt ... có thể làm tương tự để xác nhận không? Tôi đoán là có ... :) – PhD

3

Bạn muốn một cái gì đó như:

<script type="text/javascript"> 
var oldConfirm = confirm; 
var oldAlert = alert; 

confirm = function() { 
    return true; 
}; 
alert = function() { 
    return true; 
} 

var response = confirm("Is this OK?"); 

if (response) { 
    alert("Yay"); 
} 
else { 
    alert("Boo"); 
} 

confirm = oldConfirm; 
alert = oldAlert; 
</script> 
+0

Tôi không chắc chắn làm thế nào nó sẽ giúp ... bạn có thể làm tăng 'ý định' với một số lời giải thích xin vui lòng? :) – PhD

+0

Tôi đoán bạn có nghĩa là 'oldConfirm = window.confirm' theo câu trả lời của Alnitak ... – PhD

+0

Có, xin lỗi. window.confirm và xác nhận tham chiếu đến cùng một điều. –