Rumah pembangunan bahagian belakang tutorial php Menggunakan API Pemandu Web Selenium dengan PHPUNIT

Menggunakan API Pemandu Web Selenium dengan PHPUNIT

Feb 17, 2025 pm 12:20 PM

Artikel ini meneroka menggunakan pakej WebDriver Facebook untuk emulasi pelayar di PHP, membina artikel sebelumnya (tidak termasuk di sini) yang meliputi Selenium dengan PHPUNIT. Ia memberi tumpuan kepada ujian penerimaan dan mengautomasikan interaksi penyemak imbas.

Using the Selenium Web Driver API with PHPUnit

Perbezaan utama dari lanjutan selenium phpunit:

    WebDriver Facebook memerlukan penutupan sesi penyemak imbas manual menggunakan
  • , tidak seperti pengendalian automatik PhPunit. tearDown()
  • ia memanfaatkan kelas
  • untuk interaksi pelayan selenium. RemoteWebDriver

Langkah -langkah pelaksanaan:

  1. pemasangan: Gunakan komposer untuk memasang pakej WebDriver Facebook: composer require facebook/webdriver --dev

  2. Persediaan Kelas Ujian: Buat kelas ujian phpunit (mis., ) Memperluas UserSubscriptionTestFB.php. Kaedah PHPUnit_Framework_TestCase memulakan contoh setUp(), menyatakan alamat pelayan selenium (RemoteWebDriver secara lalai) dan keupayaan penyemak imbas yang dikehendaki (mis., Firefox atau Chrome). http://localhost:4444/wd/hub

    public function setUp()
    {
        $this->webDriver = RemoteWebDriver::create('http://localhost:4444/wd/hub', DesiredCapabilities::firefox());
    }
    Salin selepas log masuk
  3. Kaedah penyemak imbas:
  4. Kaedah

    adalah penting untuk menutup sesi penyemak imbas selepas setiap ujian: tearDown()

    public function tearDown()
    {
        $this->webDriver->quit();
    }
    Salin selepas log masuk
  5. Interaksi Borang:
  6. Kaedah

    menggunakan dengan untuk mencari elemen bentuk dan berinteraksi dengan mereka. fillFormAndSubmit() findElement() WebDriverBy

    public function fillFormAndSubmit($inputs)
    {
        $this->webDriver->get('http://vaprobash.dev/'); // Replace with your URL
        $form = $this->webDriver->findElement(WebDriverBy::id('subscriptionForm')); // Replace with your form ID
    
        foreach ($inputs as $input => $value) {
            $form->findElement(WebDriverBy::name($input))->sendKeys($value);
        }
    
        $form->submit();
    }
    Salin selepas log masuk
    Kes ujian:
  7. Kaedah ujian menggunakan penyedia data (diasumsikan dari artikel sebelumnya) untuk membekalkan input ujian. Pernyataan Mengesahkan hasil yang dijangkakan (mesej kejayaan atau ralat). Contoh:
  8. /**
     * @dataProvider validInputsProvider
     */
    public function testValidFormSubmission(array $inputs)
    {
        $this->fillFormAndSubmit($inputs);
        $content = $this->webDriver->findElement(WebDriverBy::tagName('body'))->getText();
        $this->assertEquals('Everything is Good!', $content); // Replace with your success message
    }
    Salin selepas log masuk

Using the Selenium Web Driver API with PHPUnit

Tangkapan tangkapan skrin: Using the Selenium Web Driver API with PHPUnit Kaedah

membolehkan menangkap tangkapan skrin semasa pelaksanaan ujian:
  1. takeScreenshot() Menunggu unsur -unsur:

    kaedah
    $this->webDriver->takeScreenshot(__DIR__ . "/../../public/screenshots/screenshot.jpg");
    Salin selepas log masuk
    dengan
  2. atau
  3. mengendalikan memuatkan halaman asynchronous:

    wait() until() WebDriverExpectedCondition Interaksi Lanjutan:

    Artikel ini merangkumi interaksi yang lebih maju seperti drag-and-drop, pengendalian amaran, dan pintasan papan kekunci.
    $this->webDriver->wait(10, 300)->until(WebDriverExpectedCondition::presenceOfElementLocated(WebDriverBy::name('username')));
    Salin selepas log masuk
  4. Ujian tanpa kepala: Artikel menerangkan cara menggunakan XVFB (X Virtual Framebuffer) untuk ujian pelayar tanpa kepala pada sistem tanpa paparan grafik. Kedua -dua kaedah (menjalankan XVFB secara berasingan dan menggunakan xvfb-run) terperinci.

    Using the Selenium Web Driver API with PHPUnit Using the Selenium Web Driver API with PHPUnit

Pautan berguna (diulang dari asal):

Artikel ini menyimpulkan dengan menekankan utiliti Selenium yang lebih luas di luar ujian, termasuk tugas automasi penyemak imbas. Bahagian FAQ menyediakan panduan lanjut mengenai pemasangan, ujian asas, pengendalian pengecualian, pernyataan, pemilihan penyemak imbas, interaksi elemen, menunggu unsur -unsur, tangkapan tangkapan skrin, pengendalian amaran, dan pelaksanaan ujian selari.

Atas ialah kandungan terperinci Menggunakan API Pemandu Web Selenium dengan PHPUNIT. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

11 skrip pemendek URL terbaik PHP (percuma dan premium) 11 skrip pemendek URL terbaik PHP (percuma dan premium) Mar 03, 2025 am 10:49 AM

11 skrip pemendek URL terbaik PHP (percuma dan premium)

Bekerja dengan Data Sesi Flash di Laravel Bekerja dengan Data Sesi Flash di Laravel Mar 12, 2025 pm 05:08 PM

Bekerja dengan Data Sesi Flash di Laravel

6 kemahiran tambahan setiap pemaju PHP sepatutnya 6 kemahiran tambahan setiap pemaju PHP sepatutnya Feb 28, 2025 am 10:52 AM

6 kemahiran tambahan setiap pemaju PHP sepatutnya

Memahami array dalam php Memahami array dalam php Feb 28, 2025 am 10:53 AM

Memahami array dalam php

Respons HTTP yang dipermudahkan dalam ujian Laravel Respons HTTP yang dipermudahkan dalam ujian Laravel Mar 12, 2025 pm 05:09 PM

Respons HTTP yang dipermudahkan dalam ujian Laravel

Bina aplikasi React dengan hujung belakang Laravel: Bahagian 2, React Bina aplikasi React dengan hujung belakang Laravel: Bahagian 2, React Mar 04, 2025 am 09:33 AM

Bina aplikasi React dengan hujung belakang Laravel: Bahagian 2, React

Curl dalam PHP: Cara Menggunakan Pelanjutan PHP Curl dalam API REST Curl dalam PHP: Cara Menggunakan Pelanjutan PHP Curl dalam API REST Mar 14, 2025 am 11:42 AM

Curl dalam PHP: Cara Menggunakan Pelanjutan PHP Curl dalam API REST

12 skrip sembang php terbaik di codecanyon 12 skrip sembang php terbaik di codecanyon Mar 13, 2025 pm 12:08 PM

12 skrip sembang php terbaik di codecanyon

See all articles