Selenium FrameworkPHP

Hướng dẫn thiết lập và sử dụng Selenium WebDriver với PHP trên macOS.

Mục đích sử dụng Selenium WebDriver

Mục đích của việc sử dụng Selenium WebDriver là để tự động hóa việc testing và thao tác trên trình duyệt web.

Selenium WebDriver là một công cụ được sử dụng để kiểm thử tự động các ứng dụng web bằng cách tương tác với trình duyệt web như một người dùng thực sự.

PHP kết hợp với Selenium WebDriver sẽ giúp các dev có thể testing các chức năng trên trình duyệt web một cách tự động, tiết kiệm thời gian và tăng tính chính xác của quá trình testing.

Việc sử dụng Selenium WebDriver với PHP trên macOS là rất hữu ích cho dev đang làm việc trên nền tảng này.

Để thiết lập và sử dụng Selenium WebDriver với PHP trên macOS, bạn có thể làm theo các bước sau:

Cài đặt Homebrew (nếu chưa có):

Mở Terminal và chạy lệnh sau:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Cài đặt PHP (nếu chưa có):

brew install php

Cài đặt Composer:

brew install composer

Cài đặt php-webdriver/webdriver

Thực hiện các bước tương tự như hướng dẫn trên cho việc cài đặt php-webdriver/webdriver và tạo tệp wordpress_login_test.php.
https://github.com/php-webdriver/php-webdriver

Cài đặt Chrome WebDriver:

brew install --cask chromedriver

Cài đặt Java Runtime Environment (JRE) (nếu chưa có):

Truy cập trang web chính thức của Oracle để tải xuống JRE: https://www.oracle.com/java/technologies/javase-jre8-downloads.html

Tìm phiên bản JRE phù hợp với macOS và nhấp vào liên kết tải xuống. Sau khi tải xuống hoàn tất, hãy cài đặt JRE theo hướng dẫn của trình cài đặt.

Tải xuống Selenium WebDriver Standalone Server:

Truy cập trang chủ của Selenium (https://www.selenium.dev/downloads/) và tải xuống phiên bản Selenium Server (Grid) phù hợp.

Chạy Selenium WebDriver Standalone Server bằng lệnh sau:

java -jar standalone path/to/selenium-server-standalone-<version>.jar --port 4444

Chạy file wordpress_login_test.php:

php wordpress_login_test.php

Nếu quá trình đăng nhập thành công và chuyển đến trang quản trị, bạn sẽ nhận được thông báo "Login test passed". Nếu không, đoạn mã sẽ báo lỗi.

Code PHP ví dụ mẫu

<?php

require_once('vendor/autoload.php');

use Facebook\WebDriver\Remote\RemoteWebDriver;
use Facebook\WebDriver\WebDriverBy;
use Facebook\WebDriver\WebDriverExpectedCondition;

$host = 'http://localhost:4444';
$capabilities = Facebook\WebDriver\Remote\DesiredCapabilities::chrome();

try {
    $driver = RemoteWebDriver::create($host, $capabilities);
} catch (Exception $e) {
    die("Error connecting to the WebDriver: ".$e->getMessage());
}

$driver->get('https://your-domain.com/wp-admin');

$username = $driver->findElement(WebDriverBy::name('log'));
$password = $driver->findElement(WebDriverBy::name('pwd'));

if (!$username || !$password) {
    $driver->quit();
    die("Error: Username or password field not found");
}

$username->sendKeys('your_username');
$password->sendKeys('your_password');

$password->submit();

try {
    $driver->wait()->until(
        WebDriverExpectedCondition::urlContains('wp-admin'),
        'Login failed'
    );
} catch (Exception $e) {
    $driver->quit();
    die("Error: ".$e->getMessage());
}

$driver->quit();

echo "Login test passed\n";

Cập nhật mới (11-07-2023):
Đoạn mã trên thêm vào các khối try-catch để xử lý các ngoại lệ có thể xảy ra khi tạo WebDriver hoặc chờ URL chứa 'wp-admin'. Ngoài ra, nó cũng kiểm tra xem liệu các trường username và password có tồn tại không trước khi thực hiện các thao tác trên chúng.

Kết luận

Như vậy, bạn đã học được cách thiết lập và sử dụng Selenium WebDriver với PHP trên macOS. Để thực hiện được điều này, bạn đã cài đặt Homebrew, PHP, Composer và Chrome WebDriver trên máy tính của mình. Sau đó, bạn đã tải xuống và cài đặt Java Runtime Environment (JRE) và Selenium WebDriver Standalone Server. Cuối cùng, bạn đã tạo một file PHP ví dụ mẫu và chạy nó để kiểm tra quá trình đăng nhập vào trang quản trị của WordPress.

Tham khảo thêm: https://github.com/php-webdriver/php-webdriver

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Back to top button
Close