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

Menggunakan API Pemandu Web Selenium dengan PHPUNIT

William Shakespeare
William Shakespeareasal
2025-02-17 12:20:14318semak imbas

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

    <code class="language-php">public function setUp()
    {
        $this->webDriver = RemoteWebDriver::create('http://localhost:4444/wd/hub', DesiredCapabilities::firefox());
    }</code>
  3. Kaedah penyemak imbas:
  4. Kaedah

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

    <code class="language-php">public function tearDown()
    {
        $this->webDriver->quit();
    }</code>
  5. Interaksi Borang:
  6. Kaedah

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

    <code class="language-php">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();
    }</code>
    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. <code class="language-php">/**
     * @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
    }</code>

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
    <code class="language-php">$this->webDriver->takeScreenshot(__DIR__ . "/../../public/screenshots/screenshot.jpg");</code>
    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.
    <code class="language-php">$this->webDriver->wait(10, 300)->until(WebDriverExpectedCondition::presenceOfElementLocated(WebDriverBy::name('username')));</code>
  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:
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