Fungsionalitas itu dalam status beta. Bagi saya, IE melempar kesalahan karena tidak menangani metode itu, Chrome mengembalikan log kosong, tetapi Firefox berfungsi. Saya tidak memiliki paket terbaru sekalipun
Jika Anda ingin melakukan pencarian string, Anda harus menggunakan Convert To String terlebih dahulu atau serupa, karena get_log mengembalikan daftar dict
Inilah cara Anda bisa mendapatkan log dari kata kunci pengguna. Jika Anda ingin melakukannya dengan Python, ada contoh kode serupa di postingan lama
Log konsol browser, bersama dengan debug juga membantu kami menangkap kesalahan yang terjadi saat menggunakan aplikasi web. Pengembang Anda akan berterima kasih saat Anda menyertakan kesalahan konsol dalam laporan bug Anda. Sebagai bagian dari menjalankan otomatisasi GUI Anda, merupakan kebiasaan yang baik untuk memeriksa dan melaporkan kesalahan yang ada di konsol browser. Dalam posting ini, saya ingin membagikan pembelajaran saya tentang cara menggunakan Selenium untuk membaca log browser sehingga dapat membantu orang lain yang mencari info ini.
Kami akan melakukan langkah-langkah berikut di pos ini
1. Pelajari metode Selenium API untuk mendapatkan log browser
2. Dapatkan log konsol
3. Periksa contoh pesan log
4. Filter log berdasarkan jenis pesan
5. Gabungkan semuanya
1. Selenium API untuk mendapatkan log konsol
Selenium menyediakan metode get_log[log_type]
_ yang membantu Anda mendapatkan log untuk jenis log tertentu. Jadi untuk mendapatkan log konsol browser, kita perlu menggunakan tipe log sebagai browser
driver.get_log[‘browser’]
sopir. get_log['peramban']
2. Dapatkan log konsol
Anda dapat menggunakan metode di bawah ini untuk mendapatkan log konsol
def get_browser_console_log[self]: "Get the browser console log" try: log = self.driver.get_log['browser'] return log except Exception,e: print["Exception when reading Browser Console log"] print[str[e]]_
def get_browser_console_log[self]. Coba "Dapatkan log konsol browser". log = diri sendiri. sopir. get_log['browser'] mengembalikan log kecuali Pengecualian,e. print["Pengecualian saat membaca log Konsol Peramban"] print[str[e]]
3. Contoh pesan log
Contoh pesan log akan terlihat seperti ini[{u'source': u'javascript', u'message': u'//qxf2.com/selenium-tutorial-main 303:9 Uncaught TypeError: $[...] is not a function', u'timestamp': 1475757107472L, u'level': u'SEVERE'}]
4. Filter log berdasarkan jenis pesan
Anda ingin memfilter pesan log berdasarkan level dan hanya mendapatkan pesan dari kumpulan hasil. Anda dapat menggunakan potongan kode berikut untuk melakukan ini
log = self.read_browser_console_log[] log_errors = [] for entry in log: if entry['level']=='SEVERE': log_errors.append[entry['message']]
log = diri sendiri. read_browser_console_log[] log_errors = [] untuk entri di log. jika entri['level']=='SEVERE'. log_errors. tambahkan[masukan['pesan']]
5. Menyatukan semuanya
Saya telah membuat dua metode get_browser_console_log[] dan check_errors_console_log[] yang akan membantu Anda mendapatkan log konsol browser dan mencetaknya
def check_errors_console_log[self,url]: "Function to get the browser's console log errors" self.driver.get[url] current_console_log_errors = [] #As IE driver does not support retrieval of any logs, #we are bypassing the get_browser_console_log[] method if "ie" not in str[self.driver]: log_errors = [] new_errors = [] log = self.get_browser_console_log[] print "Console Log: ",log for entry in log: if entry['level']=='SEVERE': log_errors.append[entry['message']] if current_console_log_errors != log_errors: #Find the difference new_errors = list[set[log_errors] - set[current_console_log_errors]] #Set current_console_log_errors = log_errors current_console_log_errors = log_errors if len[new_errors]>0: print["\nBrowser console error on url: %s\nConsole error[s]:%s"%[self.driver.current_url,'\n----'.join[new_errors]]] def get_browser_console_log[self]: "Get the browser console log" try: log = self.driver.get_log['browser'] return log except Exception,e: print["Exception when reading Browser Console log"] print[str[e]]
def check_errors_console_log[self,url]. "Fungsi untuk mendapatkan kesalahan log konsol browser" sendiri. sopir. get[url] current_console_log_errors = [] #Karena driver IE tidak mendukung pengambilan log apa pun, #kami melewati metode get_browser_console_log[] jika "ie" tidak ada di str[self. sopir]. log_errors = [] new_errors = [] log = mandiri. get_browser_console_log[] print "Log Konsol. ", log untuk masuk di log. jika entri['level']=='SEVERE'. log_errors. append[entry['message']] jika current_console_log_errors. = log_error. #Temukan perbedaan new_errors = daftar[set[log_errors] - set[current_console_log_errors]] #Set current_console_log_errors = log_errors current_console_log_errors = log_errors if len[new_errors]>0. print["\nKesalahan konsol browser pada url. %s\nKesalahan konsol. %s"%[diri. sopir. current_url,'\n----'. gabung[new_errors]]] def get_browser_console_log[self]. Coba "Dapatkan log konsol browser". log = diri sendiri. sopir. get_log['browser'] mengembalikan log kecuali Pengecualian,e. print["Pengecualian saat membaca log Konsol Peramban"] print[str[e]]
Di Qxf2, kami mengonversi kode di atas menjadi dekorator dan menggunakannya dalam kerangka kerja kami. Kami tidak akan dapat membagikan kode itu sampai kami mendapatkan waktu untuk menulis tentang kerangka kerja kami. Tetapi jika Anda cukup nyaman dengan Python, kami sarankan Anda mengubah metode ini menjadi dekorator
Catatan. Driver Internet Explorer tidak mendukung pengambilan log dalam bentuk apa pun
Dan sekarang kesalahan konsol browser juga tidak terhindar. ]. Nikmati pengujian
Jika Anda menyukai apa yang Anda baca, ketahui lebih banyak tentang Qxf2
Avinash Shetty
Saya seorang penguji perangkat lunak dengan pengalaman lebih dari 14 tahun dalam pengujian perangkat lunak. Saat ini, saya bekerja di Qxf2 Services Bangalore. Sebagai siswa pendekatan berbasis konteks untuk pengujian perangkat lunak, saya merasa ada banyak hal yang harus dipelajari di luar sana yang membuat saya sangat bersemangat. Pekerjaan saya telah membantu saya mendapatkan pengalaman yang baik di berbagai bidang pengujian seperti pengujian CRM, Web, Seluler, dan Basis Data. Saya memiliki pengetahuan yang baik tentang membuat skrip pengujian menggunakan alat Otomasi seperti Selenium dan Appium menggunakan Java dan Python. Selain pengujian, saya adalah "Fanatik Olahraga" dan suka menonton dan bermain olahraga