Saya mencoba menjalankan proyek pengujian Coded-UI pada aplikasi asp.net MVC4. Aplikasi ini berisi berbagai panggilan ajax yang terlibat. Ketika saya mengujinya secara manual, itu berfungsi dengan baik tetapi ketika saya mengujinya dengan menggunakan proyek pengujian kode-ui, itu rusak karena dalam panggilan ajax, fungsi panggilan balik tidak dipanggil. Adakah yang bisa memberi tahu saya apa yang saya lewatkan di sini.? Terima kasih sebelumnya.
Keberhasilan Jquery AJAX tidak dipicu dengan proyek pengujian Coded UI
Jawaban (1)
Apa yang salah
Browser UI Berkode Microsoft menyuntikkan javascript untuk menggeser objek XMLHttpRequest untuk pelacakan. Setiap panggilan ajax di halaman akan menggunakan shim ini, bukan XMLHttpRequest yang sebenarnya. Shim mengasumsikan bahwa panggilan balik penyelesaian Anda dilampirkan ke properti onreadystatechange XMLHttpRequest, tetapi jQuery 2.0 menggunakan peristiwa onload dan onerror yang baru, sehingga panggilan balik tidak pernah dipanggil oleh shim.
Solusi
Solusinya adalah menambahkan yang berikut ini ke file App.config untuk proyek pengujian Anda:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="WebWaitForReadyLevel" value="3"/>
</appSettings>
</configuration>
Menyetel WebWaitForReadyLevel ke 3 menghentikan Coded UI WebBrowser memasukkan javascript untuk melacak panggilan dan pengatur waktu ajax. jQuery akan mendapatkan XMLHttpRequest asli, dan panggilan balik ajax Anda akan berfungsi kembali.