Rumah >pembangunan bahagian belakang >tutorial php >Menggunakan API Pemandu Web Selenium dengan PHPUNIT
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.
Perbezaan utama dari lanjutan selenium phpunit:
tearDown()
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
. 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>
adalah penting untuk menutup sesi penyemak imbas selepas setiap ujian:
tearDown()
<code class="language-php">public function tearDown() { $this->webDriver->quit(); }</code>
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:
<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>
Tangkapan tangkapan skrin: Kaedah
takeScreenshot()
Menunggu unsur -unsur:
<code class="language-php">$this->webDriver->takeScreenshot(__DIR__ . "/../../public/screenshots/screenshot.jpg");</code>dengan
wait()
until()
WebDriverExpectedCondition
Interaksi Lanjutan:
<code class="language-php">$this->webDriver->wait(10, 300)->until(WebDriverExpectedCondition::presenceOfElementLocated(WebDriverBy::name('username')));</code>
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):
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!