Rumah >Peranti teknologi >industri IT >Cara Menggunakan Selenium Webdriver untuk Ujian Penyemak Imbas Salib

Cara Menggunakan Selenium Webdriver untuk Ujian Penyemak Imbas Salib

Lisa Kudrow
Lisa Kudrowasal
2025-02-15 11:08:12873semak imbas

Cara Menggunakan Selenium Webdriver untuk Ujian Penyemak Imbas Salib

Artikel ini pada asalnya diterbitkan di Lambdatest. Terima kasih kerana menyokong rakan kongsi yang membuat SitePoint mungkin.

Selenium adalah rangka kerja ujian automasi yang popular yang digunakan terutamanya untuk ujian penyemak imbas silang. Ia adalah sumber terbuka dan sesuai untuk mengautkan ujian aplikasi web di seluruh pelayar yang berbeza seperti Firefox, Chrome, Internet Explorer, dan Microsoft Edge. Selenium telah menjadi rangka kerja yang terkenal dan memberikan persaingan sengit kepada rangka kerja ujian lain seperti HP QTP (Professional Ujian Pantas) dan AKA HP UFT (Ujian Fungsi Bersatu). Tutorial ini untuk selenium webdriver akan membantu anda membangunkan pemahaman asas mengenai komponen selenium suite, seni bina selenium webdriver dan akan menunjukkan kepada anda bagaimana untuk menjalankan automasi untuk menguji laman web untuk keserasian penyemak imbas silang menggunakan selenium webdriver untuk Google Chrome, Mozilla Firefox dan Internet Explorer.

Selenium adalah gabungan alat yang berbeza dan setiap alat memainkan peranan penting dalam mengautomasikan ujian web. Mari kita menyelam tutorial WebDriver.

Takeaways Key

Persekitaran Pembangunan Bersepadu Selenium (IDE)

Selenium Remote Control (RC)
  • Selenium WebDriver
  • selenium grid
  • Sekarang, mari kita lihat komponen ini secara terperinci, dalam tutorial Webdriver Selenium ini.
  • Persekitaran Pembangunan Bersepadu Selenium (IDE)

    Selenium IDE adalah plugin Firefox yang mudah dan ia digunakan untuk merakam dan skrip main balik. Walau bagaimanapun, selenium IDE hanya boleh digunakan untuk menulis skrip automasi untuk mengaut automatik kes penggunaan mudah. Selenium IDE tidak menyokong kenyataan bersyarat, pengendalian pengecualian, gelung, tangkapan tangkapan skrin, dan lain -lain untuk mengautomasikan kes penggunaan kompleks, majoriti pemaju dan penguji lebih suka memilih ujian skrip dan bukannya ujian rekod & replay. Suite Ujian Selenium terdiri daripada Kawalan Jauh Selenium (RC) atau Selenium Webdriver.

    Selenium IDE tersedia untuk sistem operasi yang berbeza iaitu Windows, Linux, Mac OS, dan lain -lain. Selenium IDE untuk Firefox boleh dimuat turun di sini.

    Selenium Remote Control (RC)

    Untuk menguji senario kompleks, kawalan jauh Selenium (RC) boleh digunakan. Ia berdasarkan model pelayan klien yang memungkinkan untuk melaksanakan ujian pada penyemak imbas yang dikawal oleh pelayan. Terdapat perpustakaan pelanggan dalam bahasa pengaturcaraan yang berbeza yang memudahkan pemaju menulis kes ujian yang berkesan dalam bahasa pengaturcaraan di mana mereka selesa & mempunyai kepakaran. Sejak versi 2.25.0, RC mempunyai sokongan untuk Java, C#, Python, Perl, Ruby, dan lain -lain

    Server Selenium adalah komponen teras Selenium RC. Beberapa ciri/tanggungjawab teras selenium RC adalah di bawah:

    • mengandungi kerangka selenium teras dan ia bertanggungjawab terutamanya untuk menyuntik yang sama dalam penyemak imbas.
    • Program klien menghantar arahan ke RC yang kemudiannya ditafsirkan oleh pelayan dan kemudian dihantar ke penyemak imbas.
    • Selepas pelaksanaan, hasilnya dihantar kembali kepada klien.
    • Pelanggan & pelayan berkomunikasi melalui mekanisme biasa HTTP mendapat dan jawatan.

    Seperti yang disebutkan sebelumnya, Selenium RC menyokong pelayar yang berbeza, tidak seperti Selenium IDE yang hanya tersedia untuk Mozilla Firefox. Kelemahan Selenium RC adalah bahawa ia tidak menyokong fungsi rekod & main balik yang boleh menjadi penting dalam automasi kes ujian di mana tugas berulang, terutama untuk ujian regresi. Sebelum melaksanakan ujian menggunakan Selenium RC, satu contoh pelayan Selenium RC harus dipanggil secara manual dan contoh itu harus berjalan sepanjang kitaran ujian anda.

    Selenium WebDriver

    Kami tahu bahawa selenium IDE adalah berasaskan GUI, di mana Selenium RC adalah program Java mandiri yang akan membolehkan anda melaksanakan suite ujian HTML. Rangka Kerja Webdriver Selenium lebih banyak digunakan apabila dibandingkan dengan Selenium IDE & Selenium RC. Tidak seperti Selenium RC yang berdasarkan model pelayan-pelayan, rangka kerja WebDriver Selenium dilaksanakan melalui pemacu khusus penyemak imbas misalnya. Setiap penyemak imbas akan mempunyai aplikasi webdriver yang sepadan di mana ujian automasi akan dilakukan.

    Selenium WebDriver secara langsung berkomunikasi dengan penyemak imbas, jadi ia tidak memerlukan komponen berasingan seperti pelayan Selenium. Ia menyokong bahasa pengaturcaraan teratas yang berguna untuk penguji perisian iaitu C#, Ruby, Java, Python, Perl, dan lain -lain. dilakukan. Anda boleh memuat turun Selenium WebDriver dari pautan yang disebutkan di bawah:

    • Firefox
    • Chrome
    • Internet Explorer
    • Microsoft Edge

    selenium grid

    Ujian siri adalah baik semasa menguji kod yang terhad kepada beberapa pelayar, sistem operasi, atau peranti. Walau bagaimanapun, metodologi itu memalukan sekali ujian perlu dilakukan dalam persekitaran yang mempunyai pelbagai kombinasi. Di sinilah ujian selari boleh menjadi sangat berguna, kerana ia dapat mempercepatkan keseluruhan proses ujian. Ujian selari boleh membolehkan anda melakukan kes ujian yang sama di seluruh konfigurasi ujian yang berbeza, secara serentak. Anda juga boleh melaksanakan kes ujian yang berbeza dalam penyemak imbas yang sama. Terdapat lebih banyak ujian selari, tetapi itu boleh menyimpang tumpuan kami dari selenium webdriver.

    Kembali ke Asas: Selenium Grid terutamanya digunakan untuk ujian selari kerana ia membantu menjalankan ujian pada mesin yang berbeza terhadap pelayar & sistem operasi yang berbeza, secara serentak. Ia melakukan kerja bersempena dengan Selenium RC. Contoh yang mempamerkan penggunaan selenium grid adalah di bawah:

    <span>from selenium import webdriver
    </span><span>from selenium.webdriver.common.keys import Keys
    </span>
    desired_cap <span>= {
    </span><span>'platform' : 'win10',
    </span><span>'browserName' : 'chrome',
    </span><span>'version' :  "67.0",
    </span><span>}
    </span>
    url <span>= "https://username:acsessToken@{LMABDA GRID URL}/wd/hub"
    </span>
    driver <span>= webdriver.Remote(
    </span>    desired_capabilities<span>=desired_cap,
    </span>    command_executor<span>= url
    </span><span>) 
    </span>
    driver<span>.implicitly_wait(1)
    </span>driver<span>.get("http://www.google.com/")
    </span>driver<span>.quit()
    </span>

    Selenium WebDriver Architecture

    Lihatlah blok utama yang terdiri daripada seni bina selenium webdriver:

    • perpustakaan klien selenium
    • Protokol Wire JSON
    • Pemandu penyemak imbas
    • Pelayar

    mari kita periksa setiap komponen dengan lebih terperinci.

    perpustakaan klien selenium

    Seperti yang disebutkan sebelumnya, pemaju boleh menggunakan selenium untuk menulis kod ujian dalam bahasa yang berbeza seperti C#, Java, Python, Perl, dan lain-lain. Sokongan pelbagai bahasa adalah mungkin disebabkan oleh perpustakaan klien selenium atau pengikat bahasa selenium. Sebagai contoh, jika anda menulis kod di Python, anda akan memerlukan perpustakaan pelanggan Python. Pemacu pelanggan Selenium untuk bahasa pengaturcaraan yang berbeza boleh dimuat turun dari sini.

    Protokol Wire JSON

    JSON (JavaScript Object Notation) Protokol wayar memudahkan pemindahan data antara klien & pelayan. Ia adalah API berasaskan (Perwakilan Negeri Perwakilan) yang lain. Setiap penyemak imbas akan mempunyai pemandu penyemak imbas sendiri.

    Pemandu penyemak imbas

    Pemandu penyemak imbas digunakan terutamanya untuk berkomunikasi dengan penyemak imbas. Oleh kerana logik dalaman penyemak imbas dan fungsinya tidak diturunkan, pemandu penyemak imbas memastikan lapisan 'enkapsulasi' yang diperlukan untuk memastikan butiran tahap pelaksanaan lebih abstrak. Setiap penyemak imbas mempunyai pemacu penyemak imbas yang sepadan.

    Pelayar

    Sejak pemandu penyemak imbas disediakan untuk pelayar popular seperti Chrome, Firefox, Internet Explorer, Safari, dan Microsoft Edge, anda boleh menggunakan mana -mana daripada mereka untuk melakukan ujian penyemak imbas silang. Harus diingat bahawa anda tidak boleh melakukan ujian penyemak imbas silang laman web pada pelayar yang pemandu penyemak imbasnya tidak tersedia secara terbuka.

    Cara Menggunakan Selenium Webdriver untuk Ujian Penyemak Imbas Salib

    lambdatest kini hidup dengan grid selenium di awan

    Lambdatest menawarkan grid Selenium di atas awan untuk membantu anda menjejaki proses ujian automasi anda. Grid Selenium menawarkan lebih daripada 2000 pelayar sebenar dan versi penyemak imbas yang berjalan pada banyak sistem operasi. Anda boleh melaksanakan ujian selari menggunakan lambdatest selenium grid tanpa bimbang untuk memasang sebarang infrastruktur berat di mesin tempatan anda, dan anda mendapat pelbagai pelayar untuk memaksimumkan liputan ujian anda.

    Bilangan sesi selari yang boleh anda jalankan bergantung sepenuhnya pada sesi serentak yang anda pilih. Ujian selari boleh membantu anda memotong kitaran ujian anda secara drastik. Sebagai contoh, katakan anda mempunyai suite ujian yang mengambil masa 60 minit tanpa ujian selari. Sekarang, jika anda mempunyai 2 kesesuaian maka anda boleh menjalankan 2 ujian secara serentak, memangkas jumlah masa ujian anda hingga 30 minit. Begitu juga, jika anda mempunyai 3 kesesuaian maka jumlah ujian masa ujian lebih jauh hingga 20 minit. Gunakan kalkulator konkurensi lambdatest untuk mengira berapa sesi serentak yang anda perlukan mengikut suite ujian anda.

    selenium webdriver dalam tindakan

    Sekarang anda menyedari asas -asas pemacu selenium dan penyemak imbas, sudah tiba masanya kita melihat skrip WebDriver yang mudah. Sebelum kita melihat contohnya, sila pastikan anda mempunyai persekitaran pengaturcaraan siap (kami menggunakan Eclipse dengan semua pakej yang diperlukan yang dimuat turun dari pasaran Eclipse). Plugin Selenium untuk Eclipse boleh dimuat turun di sini. Kod sampel telah ditulis dalam bahasa Python, tetapi anda boleh menulis kod ujian di C#, Java, Perl, Ruby, dan lain -lain

    Contoh WebDriver Firefox

    Oleh kerana kod ujian akan berkomunikasi dengan penyemak imbas (Chrome, Firefox, Internet Explorer, dan lain -lain), sila pastikan perpustakaan/webdriver klien yang sepadan dipasang di mesin anda. Sila rujuk bahagian pemacu penyemak imbas bahagian mengenai bagaimana anda boleh memuat turun webdriver yang sepadan.

    di bawah adalah kod sampel yang menggunakan selenium, firefox webdriver untuk membuka laman web:

    <span>from selenium import webdriver
    </span><span>from selenium.webdriver.common.keys import Keys
    </span>
    desired_cap <span>= {
    </span><span>'platform' : 'win10',
    </span><span>'browserName' : 'chrome',
    </span><span>'version' :  "67.0",
    </span><span>}
    </span>
    url <span>= "https://username:acsessToken@{LMABDA GRID URL}/wd/hub"
    </span>
    driver <span>= webdriver.Remote(
    </span>    desired_capabilities<span>=desired_cap,
    </span>    command_executor<span>= url
    </span><span>) 
    </span>
    driver<span>.implicitly_wait(1)
    </span>driver<span>.get("http://www.google.com/")
    </span>driver<span>.quit()
    </span>

    mari kita berjalan melalui kod. Sebelum kita melakukan apa -apa tindakan, semua modul yang diperlukan diimport menggunakan pernyataan ' import [LINES 2 ~ 4]. Dalam kod ujian, kami menggunakan Firefox Webdriver sejak ujian dilakukan terhadap pelayar Firefox [baris 7]. Dalam kod, FF_Driver adalah pemegang webdriver yang akan digunakan untuk melakukan sebarang interaksi dengan penyemak imbas Firefox. Sekiranya anda tidak memasang WebDriver atau anda cuba menggunakan penyemak imbas yang tidak ada sokongan (melalui WebDriver), ia akan memberikan ralat di bawah:

    selenium.common.exceptions.WebDriverException: Mesej: 'Operadriver' boleh dilaksanakan perlu berada di jalan.

    Mesej ralat dipaparkan apabila kami cuba memuatkan WebDriver untuk Pelayar Opera (tanpa webdriver yang dipasang pada mesin). Untuk menghilangkan kesilapan, anda harus memasang webdriver untuk opera.

    Setelah semua operasi pada penyemak imbas selesai, ff_driver.close () dipanggil untuk melakukan pembersihan dan sumber yang diperlukan.

    3

    Contoh WebDriver Chrome Cara Menggunakan Selenium Webdriver untuk Ujian Penyemak Imbas Salib

    Bahagian sebelumnya dalam tutorial WebDriver Selenium kami, kami menggunakan Firefox WebDriver. Dalam bahagian ini, kita melihat perubahan yang diperlukan sekiranya anda menggunakan pelayar Chrome untuk ujian. Anda harus memastikan bahawa binari Chromedriver yang berdiri sendiri (yang berbeza daripada binari penyemak imbas Chrome) boleh didapati di jalan yang betul atau ia hadir sebagai sebahagian daripada pembolehubah persekitaran webdriver.chrome.driver. Jika anda menggunakan Windows, anda perlu terlebih dahulu memuat turun Chrome WebDriver dari sini. Tampal chromedriver.exe Di lokasi di mana anda telah memasang python (dalam kes kami, ia adalah laluan pemasangan lalai iaitu C: python27scripts). Anda perlu memuatkan webdriver yang sepadan [baris 8] dan selebihnya kod tetap sama. Di bawah ini adalah coretan kod, dengan perubahan (diperlukan untuk peniru web krom) yang diserlahkan dalam warna yang berbeza:

    <span>from selenium import webdriver
    </span><span>from selenium.webdriver.common.keys import Keys
    </span>
    desired_cap <span>= {
    </span><span>'platform' : 'win10',
    </span><span>'browserName' : 'chrome',
    </span><span>'version' :  "67.0",
    </span><span>}
    </span>
    url <span>= "https://username:acsessToken@{LMABDA GRID URL}/wd/hub"
    </span>
    driver <span>= webdriver.Remote(
    </span>    desired_capabilities<span>=desired_cap,
    </span>    command_executor<span>= url
    </span><span>) 
    </span>
    driver<span>.implicitly_wait(1)
    </span>driver<span>.get("http://www.google.com/")
    </span>driver<span>.quit()
    </span>

    Contoh Webdriver Internet Explorer

    Setakat ini dalam tutorial WebDriver Selenium kami, kami telah menunjukkan ujian penyemak imbas silang menggunakan WebDriver Webdriver & Chrome Firefox. Dalam bahagian ini, kita melihat perubahan yang diperlukan sekiranya anda menggunakan pelayar Chrome untuk ujian. Anda harus memuat turun WebDriver Internet Explorer yang betul (32 bit/64 bit) dari sini atau di sini. Tampal internetexplorerdriver.exe Di lokasi di mana anda telah memasang python (dalam kes kami, ia adalah laluan pemasangan lalai iaitu C: python27scripts) atau mana -mana lokasi lain pilihan anda. Jika anda menyalin WebDriver InternetExplorer di jalan di mana Python boleh dilaksanakan, anda tidak perlu menyebut 'jalan mutlak' semasa memuatkan pemacu web [baris 7]. Dalam kes lain, anda perlu menentukan jalan mutlak [baris 9]. Berikut adalah coretan kod, dengan perubahan (diperlukan untuk IE WebDriver), diserlahkan dalam warna yang berbeza:

    <span># Import the necessary modules for development
    </span><span>import time
    </span><span>import unit test
    </span><span>from selenium import web driver
    </span>
    <span># Invoke a new Firefox Instance
    </span>ff_driver <span>= webdriver.Firefox()
    </span>
    <span># Blocking wait of 30 seconds in order to locate the element
    </span>ff_driver<span>.implicitly_wait(30)
    </span>ff_driver<span>.maximize_window()
    </span>
    <span># Open the required page
    </span>ff_driver<span>.get("http://www.lambdatest.com")
    </span>
    <span># Sleep for 10 seconds in order to see the results
    </span>time<span>.sleep(10)
    </span>
    <span># Close the Browser instance
    </span>ff_driver<span>.close()
    </span>
    Pada akhirnya, dalam tutorial selenium webdriver kami, kami akan melihat contoh lain di mana kami menggunakan modul ActionChains yang digunakan untuk mengautomasikan interaksi tahap rendah seperti pergerakan tetikus, pergerakan butang, interaksi menu konteks, dan lain -lain untuk memastikan yang mantap Reka bentuk UI. Maklumat lanjut mengenai ActionChains boleh didapati di sini.

    <span># Import the necessary modules for development
    </span><span>import time
    </span><span>import unit test
    </span><span>from selenium import web driver
    </span>
    <span># Invoke a new Chrome Instance
    </span>ff_driver <span>= webdriver.Chrome()
    </span>
    <span># Blocking wait of 30 seconds in order to locate the element
    </span>ff_driver<span>.implicitly_wait(30)
    </span>ff_driver<span>.maximize_window()
    </span>
    <span># Open the required page
    </span>ff_driver<span>.get("http://www.lambdatest.com")
    </span>
    <span># Sleep for 10 seconds in order to see the results
    </span>time<span>.sleep(10)
    </span>
    <span># Close the Browser instance
    </span>ff_driver<span>.close()
    </span>
    Seperti yang dilihat dalam kod contoh di atas, kami mengekalkan kod untuk membuat contoh WebDriver Firefox [Lines 9 ~ 16]. Terdapat beberapa modul baru yang diimport - Actionchains and Keys. Sebaik sahaja laman web yang dikehendaki iaitu https://www.lambdatest.com/ dibuka oleh penyemak imbas, operasi carian dilakukan dengan melihat teks pautan (menggunakan kaedah find_element_by_link_text). Dalam contoh kami, teks pautan yang dicari di laman web adalah 'sokongan' [baris 20 ~ 22].

    Setelah kriteria carian ditemui, operasi (klik Ctrl) dilakukan, dengan itu membuka halaman itu dalam 'tab baru' [baris 26 ~ 30]. Modul ActionChains digunakan untuk melaksanakan operasi itu. Output di bawah:

    Cara Menggunakan Selenium Webdriver untuk Ujian Penyemak Imbas Salib kami telah menggunakan tindakan aksi kerana ia sesuai untuk contoh yang kami paparkan di atas. Anda boleh melihat modul yang berbeza di bawah modul WebDriver Selenium (untuk Python) di sini. Walaupun kami telah menggunakan bahasa Python untuk pelaksanaan, anda boleh menggunakan bahasa pengaturcaraan (C#, Java, Perl, Ruby, PHP) pilihan anda.

    Webdriver Tempatan-Pendekatan Tidak-So-Scalable

    Ujian menggunakan webdriver tempatan boleh digunakan sekiranya anda merancang untuk menguji laman web anda dengan jumlah gabungan 'Peranti Sistem Operasi Penyemak imbas' yang terhad. Walau bagaimanapun, pendekatan itu mungkin goyah jika bilangan kombinasi lebih banyak. Anda tidak boleh mempunyai persediaan tempatan untuk setiap kombinasi kerana itu bukan pendekatan berskala dan mungkin juga menjadi sangat mahal.

    Penyelesaian yang lebih baik adalah untuk memanfaatkan keupayaan platform seperti Lambdatest di mana anda boleh melakukan ujian silang pelayar di awan. Menggunakan Lambdatest, anda boleh mengesahkan laman web anda di 2000 pelayar, sistem operasi, dan konfigurasi peranti yang berbeza. Untuk memulakan, anda perlu membuat akaun di Lambdatest. Oleh kerana anda akan menggunakan WebDriver Jauh (menggunakan Selenium Grid pada Lambdatest) untuk menguji aplikasi web anda, anda harus membuat nota mengenai nama pengguna dan kunci akses dari profil Lambdatest anda.

    Skrip Selenium Menggunakan Webdriver Jauh dengan Lambdatest

    Sekarang anda tahu tentang penggunaan selenium WebDriver dan kekurangan potensi menggunakan pendekatan itu, kami melihat bagaimana anda boleh melaksanakan pelaksanaan webdriver tempatan anda ke WebDriver jauh. Prinsip teras Webdriver Jauh adalah serupa dengan Webdriver tempatan, kecuali bahawa kod WebDriver jauh tidak boleh dilaksanakan pada mesin yang sama dari mana ia dimulakan. Webdriver jauh adalah berdasarkan model pelayan klien di mana pelayan adalah servlet Java yang mudah dihoskan pada mana-mana pelayan aplikasi JEE moden. Hub/pelayan memuatkan ujian yang perlu dilaksanakan. Ia menerima permintaan ujian dari pelanggan yang berlainan dan berdasarkan keperluan (disebut sebagai keupayaan yang dikehendaki), ia mengarahkan permintaan kepada klien yang sesuai/terbaik. Sebagai contoh, jika ujian anda perlu dilaksanakan di Ubuntu OS Chrome, pelayan/hab akan mengimbas keupayaan pelanggan/nod yang didaftarkan dengan pelayan dan mengalihkan permintaan kepada klien dengan keupayaan yang sepadan. Terdapat hanya satu pelayan dan bilangan pelanggan dalam seni bina selenium grid. Maklumat yang lebih terperinci mengenai API Pemandu Jauh boleh didapati di blog lain di laman web Lambdatest.

    Sebaik sahaja anda log masuk ke Lambdatest, anda harus menjana keupayaan yang diperlukan oleh nod dengan melawat Penjana Keupayaan Lambdatest. Pilih bahasa pengaturcaraan pilihan anda (dalam kes kami ia adalah Python) dan kombinasi OS/penyemak imbas yang sesuai. Anda boleh mengaktifkan ciri -ciri rakaman tangkapan skrin dan video semasa menetapkan keupayaan. Seperti yang ditunjukkan di bawah, keperluan kami adalah ujian yang harus dilaksanakan pada Firefox (versi 64.0) yang dipasang pada mesin Windows 10. Keupayaan untuk keperluan adalah di bawah:

    di bawah adalah tangkapan skrin dari Penjana Keupayaan Lambdatest:

    <span>from selenium import webdriver
    </span><span>from selenium.webdriver.common.keys import Keys
    </span>
    desired_cap <span>= {
    </span><span>'platform' : 'win10',
    </span><span>'browserName' : 'chrome',
    </span><span>'version' :  "67.0",
    </span><span>}
    </span>
    url <span>= "https://username:acsessToken@{LMABDA GRID URL}/wd/hub"
    </span>
    driver <span>= webdriver.Remote(
    </span>    desired_capabilities<span>=desired_cap,
    </span>    command_executor<span>= url
    </span><span>) 
    </span>
    driver<span>.implicitly_wait(1)
    </span>driver<span>.get("http://www.google.com/")
    </span>driver<span>.quit()
    </span>

    Oleh kerana kami akan menggunakan grid selenium pada pelayan Lambdatest, kami perlu mengubah suai kod kami untuk mengakses infrastruktur awan mereka (juga disebut sebagai URL jauh). URL jauh ditunjukkan di bawah:

    <span>from selenium import webdriver
    </span><span>from selenium.webdriver.common.keys import Keys
    </span>
    desired_cap <span>= {
    </span><span>'platform' : 'win10',
    </span><span>'browserName' : 'chrome',
    </span><span>'version' :  "67.0",
    </span><span>}
    </span>
    url <span>= "https://username:acsessToken@{LMABDA GRID URL}/wd/hub"
    </span>
    driver <span>= webdriver.Remote(
    </span>    desired_capabilities<span>=desired_cap,
    </span>    command_executor<span>= url
    </span><span>) 
    </span>
    driver<span>.implicitly_wait(1)
    </span>driver<span>.get("http://www.google.com/")
    </span>driver<span>.quit()
    </span>

    @hub.lambdatest.com/wd/hub adalah persediaan grid selenium pada lambdatest di mana ujian akan dilaksanakan. Untuk tujuan pengesahan pengguna, user_name (digunakan untuk pendaftaran pada lambdatest) & app_key (akses-token) dilampirkan ke URL grid. Rentetan yang disatukan membentuk remote_url. Sekarang anda sedar tentang API Webdriver Remote dan Generator Keupayaan, mari kita port contoh terdahulu kami untuk memenuhi keperluan ini.

    PARALLEL_TEST_EXAMPLE-1.PY

    <span># Import the necessary modules for development
    </span><span>import time
    </span><span>import unit test
    </span><span>from selenium import web driver
    </span>
    <span># Invoke a new Firefox Instance
    </span>ff_driver <span>= webdriver.Firefox()
    </span>
    <span># Blocking wait of 30 seconds in order to locate the element
    </span>ff_driver<span>.implicitly_wait(30)
    </span>ff_driver<span>.maximize_window()
    </span>
    <span># Open the required page
    </span>ff_driver<span>.get("http://www.lambdatest.com")
    </span>
    <span># Sleep for 10 seconds in order to see the results
    </span>time<span>.sleep(10)
    </span>
    <span># Close the Browser instance
    </span>ff_driver<span>.close()
    </span>
    mari kita buat panduan kod, terutamanya perubahan utama:

      Nama Pengguna & AccessToken dilampirkan ke gridurl. Gabungan membentuk URL jauh di mana pelaksanaan kes ujian dilakukan.
    • API WebDriver.Remote digunakan bukan API WebDriver tempatan. API WebDriver Jauh mempunyai dua argumen - Command_Executor: Persediaan Grid di mana ujian dilakukan dan dikehendaki_capabilities: keupayaan/keperluan yang dikehendaki nod. Berdasarkan keperluan keupayaan ini, nod yang sesuai dipilih di mana kod itu dilaksanakan.
    Untuk memeriksa status ujian, anda perlu melawat papan pemuka Lambdatest anda. Anda boleh mencari ujian melalui nama binaannya yang digunakan dalam pembentukan keupayaan. Tangkapan skrin ujian di atas dilaksanakan pada grid lambdatest adalah di bawah.

    Cara Menggunakan Selenium Webdriver untuk Ujian Penyemak Imbas Salib Terdapat pelbagai pilihan pada panel output yang boleh menjadi instrumental semasa debugging. Beberapa pilihan utama adalah di bawah.

    Pengecualian - menyenaraikan pengecualian yang ditemui semasa pelaksanaan kod ujian.
    • Log - Tab ini menunjukkan log selenium serta log konsol. Ia boleh menjadi sangat berguna untuk menyahpepijat kod anda.
    • Metadata - Ia mengandungi maklumat terperinci mengenai persekitaran ujian di mana ujian dilakukan. Dalam kes kami, ujian dilaksanakan pada Firefox 64.0 yang dipasang pada mesin Windows 10. Anda juga boleh mendapatkan butiran mengenai konfigurasi penyemak imbas.

    ujian selari - mempercepat kitaran ujian anda Cara Menggunakan Selenium Webdriver untuk Ujian Penyemak Imbas Salib

    Satu ciri pada lambdatest yang dapat mempercepatkan keseluruhan proses ujian anda adalah ujian selari. Berdasarkan model harga yang anda pilih, anda boleh melaksanakan ujian secara serentak supaya masa pelaksanaan ujian keseluruhan dikurangkan. Dalam kes kita, kita boleh mempunyai dua sesi serentak. Sesi yang lebih serentak, semakin pendek jumlah masa pelaksanaan ujian.

    3 Bersama dengan contoh sebelumnya (paralel_test_example-1.py), kami melaksanakan ujian kedua (paralel_test_example-2.py) serentak dengannya.

    Cara Menggunakan Selenium Webdriver untuk Ujian Penyemak Imbas Salib PARALLEL_TEST_EXAMPLE-2.PY

    <span>from selenium import webdriver
    </span><span>from selenium.webdriver.common.keys import Keys
    </span>
    desired_cap <span>= {
    </span><span>'platform' : 'win10',
    </span><span>'browserName' : 'chrome',
    </span><span>'version' :  "67.0",
    </span><span>}
    </span>
    url <span>= "https://username:acsessToken@{LMABDA GRID URL}/wd/hub"
    </span>
    driver <span>= webdriver.Remote(
    </span>    desired_capabilities<span>=desired_cap,
    </span>    command_executor<span>= url
    </span><span>) 
    </span>
    driver<span>.implicitly_wait(1)
    </span>driver<span>.get("http://www.google.com/")
    </span>driver<span>.quit()
    </span>

    Jalankan dua ujian selari pada dua terminal yang berbeza dengan menggunakan perintah python.

    Cara Menggunakan Selenium Webdriver untuk Ujian Penyemak Imbas Salib

    di bawah adalah tangkapan skrin dari log automasi Lambdatest di mana anda dapat melihat bahawa terdapat dua ujian yang dilaksanakan secara selari.

    Cara Menggunakan Selenium Webdriver untuk Ujian Penyemak Imbas Salib Kesimpulan

    Terdapat bilangan kelebihan menggunakan API WebDriver Jauh pada infrastruktur awan seperti Lambdatest kerana ia mempercepatkan keseluruhan proses ujian. Ia juga merupakan pendekatan yang sangat berskala. Dengan menggunakan keserasian iaitu paralelisasi, anda dapat mengurangkan masa keseluruhan yang dibelanjakan dalam ujian automasi.

    Soalan Lazim (Soalan Lazim) di Selenium Webdriver untuk ujian silang penyemak imbas

    Apakah prasyarat untuk menubuhkan selenium webdriver untuk ujian silang penyemak imbas?

    Sebelum menyediakan selenium webdriver untuk ujian silang penyemak imbas, anda perlu mempunyai prasyarat tertentu di tempat. Pertama, anda perlu mempunyai pemahaman asas mengenai bahasa pengaturcaraan yang akan anda gunakan untuk menulis skrip ujian. Selenium menyokong pelbagai bahasa seperti Java, Python, C#, Ruby, dan lain -lain. Kedua, anda perlu memasang Perpustakaan Webdriver Selenium untuk bahasa yang dipilih. Ketiga, anda perlu memasang pemacu penyemak imbas untuk penyemak imbas yang ingin anda uji. Akhir sekali, anda perlu mempunyai rangka kerja ujian seperti TestNG atau Junit untuk Java, atau Unittest atau Pytest untuk Python, untuk menguruskan kes ujian anda. 🎜> Mengendalikan elemen web dinamik boleh mencabar di selenium webdriver. Walau bagaimanapun, anda boleh menggunakan pelbagai strategi untuk menangani mereka. Satu kaedah biasa adalah menggunakan fungsi menunggu selenium yang jelas. Ini membolehkan skrip anda berhenti sejenak sehingga keadaan tertentu dipenuhi, seperti kehadiran elemen dalam DOM. Kaedah lain adalah menggunakan pemilih XPath atau CSS dengan aksara wildcard untuk memadankan bahagian dinamik atribut elemen. Dalam selenium webdriver, anda boleh menggunakan rangka kerja ujian yang menyokong pelaksanaan selari, seperti testng atau pytest. Dalam testng, anda boleh menetapkan atribut selari dalam tag suite dalam fail testng.xml anda ke kaedah atau ujian, dan tentukan atribut kiraan thread kepada bilangan benang yang anda mahu gunakan. Di Pytest, anda boleh menggunakan plugin Pytest -Xdist dan tentukan bilangan proses dalam baris arahan dengan pilihan -n.

    Bagaimana saya boleh mengendalikan tingkap pop timbul atau makluman menggunakan selenium webdriver?

    Selenium WebDriver Menyediakan antara muka amaran untuk mengendalikan tingkap atau peringatan pop timbul. Anda boleh beralih kepada amaran menggunakan kaedah switchto (). Alert (), dan kemudian gunakan kaedah Accept (), menolak (), getText (), atau sendKeys () untuk berinteraksi dengan amaran. Ingatlah untuk beralih ke tetingkap utama selepas mengendalikan amaran.

    Bagaimana saya boleh mengambil tangkapan skrin kegagalan ujian menggunakan selenium webdriver? Anda boleh menggunakan kaedah getScreenshotas () untuk mengambil tangkapan skrin dan menyimpannya ke fail. Anda boleh memanggil kaedah ini dalam blok tangkapan pernyataan cubaan atau dalam kaedah selepas rangka ujian ujian anda untuk menangkap tangkapan skrin kegagalan ujian.

    Selenium WebDriver menyediakan kelas pilih untuk berinteraksi dengan menu dropdown. Anda boleh membuat objek kelas pilih dengan lulus elemen dropdown kepada pembina. Kemudian, anda boleh menggunakan kaedah selectByVisibleText (), selectByValue (), atau selectByIndex () untuk memilih pilihan. Anda juga boleh menggunakan kaedah GetOptions () untuk mendapatkan semua pilihan dalam lungsur turun. ) .frame () kaedah. Anda boleh lulus indeks, nama atau ID, atau elemen iframe ke kaedah ini. Setelah berinteraksi dengan iframe, ingatlah untuk beralih ke tetingkap utama menggunakan switchto (). DefaultContent () kaedah.

    Bagaimana saya boleh mengendalikan kuki menggunakan selenium webdriver? untuk berinteraksi dengan kuki. Anda boleh menggunakan kaedah addCookie () untuk menambah kuki, kaedah getCookeneded () untuk mendapatkan kuki tertentu, kaedah getCookies () untuk mendapatkan semua cookies, dan deletecookie (), deleteCookiNamed (), atau deleteallCookies () kaedah untuk Padam cookies.

    Bagaimana saya boleh mengendalikan panggilan ajax menggunakan selenium webdriver?

    Mengendalikan panggilan AJAX di selenium webdriver boleh menjadi rumit kerana mereka tidak segerak dan boleh mengambil sedikit masa untuk mendapatkan data. Anda boleh menggunakan tunggu eksplisit dengan jangkaan yang dijangkakan untuk menunggu sehingga panggilan ajax selesai dan data dimuatkan.

    Bagaimana saya boleh mengendalikan peristiwa papan kekunci dan tetikus menggunakan selenium webdriver? kelas untuk mengendalikan peristiwa papan kekunci dan tetikus. Anda boleh membuat objek kelas tindakan dan menggunakan kaedahnya seperti klik (), doubleClick (), contextClick (), draganddrop (), keydown (), keyup (), dan sebagainya, untuk mensimulasikan pelbagai tindakan papan kekunci dan tetikus.

Atas ialah kandungan terperinci Cara Menggunakan Selenium Webdriver untuk Ujian Penyemak Imbas Salib. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn