


Menggunakan API Pemandu Web Selenium dengan PHPUNIT
Feb 17, 2025 pm 12:20 PMArtikel 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.
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:
-
pemasangan: Gunakan komposer untuk memasang pakej WebDriver Facebook:
composer require facebook/webdriver --dev
-
Persediaan Kelas Ujian: Buat kelas ujian phpunit (mis., ) Memperluas
UserSubscriptionTestFB.php
. KaedahPHPUnit_Framework_TestCase
memulakan contohsetUp()
, 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
Kaedah penyemak imbas: - Kaedah
adalah penting untuk menutup sesi penyemak imbas selepas setiap ujian:
tearDown()
public function tearDown() { $this->webDriver->quit(); }
Salin selepas log masuk Interaksi Borang: - Kaedah
menggunakan dengan untuk mencari elemen bentuk dan berinteraksi dengan mereka.
fillFormAndSubmit()
findElement()
WebDriverBy
Kes ujian: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 Kaedah ujian menggunakan penyedia data (diasumsikan dari artikel sebelumnya) untuk membekalkan input ujian. Pernyataan Mengesahkan hasil yang dijangkakan (mesej kejayaan atau ralat). Contoh: -
/** * @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
Tangkapan tangkapan skrin: Kaedah
-
takeScreenshot()
Menunggu unsur -unsur:dengan$this->webDriver->takeScreenshot(__DIR__ . "/../../public/screenshots/screenshot.jpg");
Salin selepas log masuk atau - mengendalikan memuatkan halaman asynchronous:
wait()
until()
WebDriverExpectedCondition
Interaksi Lanjutan:$this->webDriver->wait(10, 300)->until(WebDriverExpectedCondition::presenceOfElementLocated(WebDriverBy::name('username')));
Salin selepas log masuk -
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.
Pautan berguna (diulang dari asal):
- https://www.php.cn/link/5847ac0c8efb8552d1b7c42a4c3f2418
- https://www.php.cn/link/676bc6cef834fe54277b1954f6cd4c5c
- https://www.php.cn/link/f31bad5d6425dd6d172c786a1bffe4a7
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!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

11 skrip pemendek URL terbaik PHP (percuma dan premium)

Bekerja dengan Data Sesi Flash di Laravel

6 kemahiran tambahan setiap pemaju PHP sepatutnya

Respons HTTP yang dipermudahkan dalam ujian Laravel

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

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

12 skrip sembang php terbaik di codecanyon
