2011-07-06 22 views
12

Tôi muốn sử dụng Selenium để tự động hóa một số tác vụ web (không phải để thử nghiệm). Tôi nghĩ rằng tôi có Selenium RC Server cài đặt, nhưng không có cách nào để viết "kịch bản thử nghiệm" vì tôi không thể tìm thấy một trình điều khiển máy khách trong PHP (xem: http://seleniumhq.org/download/).Làm thế nào để sử dụng Selenium với PHP?

Có cách nào để tôi sử dụng Selenium với PHP không? Điều này dường như đề nghị tôi cần PHPUnit http://www.phpunit.de/manual/current/en/selenium.html. Tôi chỉ muốn tự động hóa một vài tác vụ, không tham gia với một bộ kiểm thử đầy đủ.

Trả lời

11

Hãy thử những điều sau đây

  1. Nhận PHPUnit cài đặt và hoạt
  2. Cũng có JAVA sdk & jre trên máy của bạn.
  3. Bây giờ ghi lại các trường hợp thử nghiệm bằng cách sử dụng selenium IDE.
  4. Xuất khẩu testcases thành tệp php.
  5. Sử dụng các hàm được xuất này tạo thư viện các trường hợp thử nghiệm.
  6. Tạo bộ gọi hàm/kiểm tra từ thư viện.
  7. Bây giờ để thực thi Start Selenium Server bằng lệnh java.
  8. Sử dụng phpunit Thực hiện bộ.

cho refrence làm thế nào để viết những tập tin kích here và cũng cố gắng trên git hub

+1

Thư viện [php-webdriver] (https://github.com/facebook/php-webdriver) đơn giản là đủ, và việc thiết lập có thể dễ dàng hơn với các công cụ như [Steward] (https://github.com)/lmc-eu/steward). Tôi sẽ đề nghị không lãng phí thời gian với Selenium IDE và chỉ cần viết kịch bản mong muốn ngay trong PHP. –

0

Vui lòng kiểm tra liên kết này: http://mvnrepository.com/artifact/org.seleniumhq.selenium.client-drivers

Bấm vào liên kết selen-php-client-lái xe để có được nhị phân

+0

Đó là một tập tin JAR. Làm thế nào để làm cho nó hoạt động với PHP? – StackOverflowNewbie

+0

cài đặt bình trong selenium ... –

+1

Marc - Tôi thường không làm việc với Java, vì vậy tôi hơi bối rối bởi nhị phân JAR này. Làm thế nào để cài đặt JAR này trong Selenium? Sau đó, làm cách nào để chạy các tập lệnh Selenese từ PHP? – StackOverflowNewbie

1

Bạn cần máy chủ chạy selen và một thư viện driver web để tương tác với nó.

selen chính thức không hỗ trợ PHP nhưng trong Nearsoft, chúng tôi đã tạo thư viện để tương tác với Giao thức dây Json. Chúng tôi nhằm mục đích làm cho nó tương tự như các ví dụ từ các ngôn ngữ và trình điều khiển khác từ trang web chính thức để một ví dụ từ trang trong Java sẽ có một cú pháp rất giống nhau trong php.

Check it out: https://github.com/Nearsoft/PHP-SeleniumClient

Nếu bạn thích nó, chia sẻ nó, tham gia, ngã ba nó hay làm theo ý mình.

Trân trọng, Đánh dấu.

12

facebook/php-webdriver là một ứng dụng tuyệt vời cho selen và php.

Bạn có thể sử dụng nó để tự động hóa các tác vụ web (như OP muốn), hoặc bạn có thể chỉ cần tích hợp php-webdriver vào khung kiểm tra của bạn. Có một số dự án đã cung cấp điều này:

  • Steward tích hợp php-webdriver trực tiếp vào PHPUnit.
  • Codeception khung kiểm tra cung cấp lớp BDD trên đầu trang của trình quản lý web-php.
  • Bạn cũng có thể xem điều này blogpost + demo project, mô tả tích hợp tùy chỉnh PHPUnit.

Install Tất cả mọi thứ

  1. Tải về và cài đặt facebook/php-webdriver. composer require facebook/webdriver

  2. Download Selenium & Bắt đầu. java -jar selenium-server-standalone-#.jar

  3. Download Quick Java và đặt nó vào thư mục dự án của bạn.


Cách sử dụng

Trong ví dụ này, chúng tôi sử dụng phần mở rộng quickjava để vô hiệu hóa tất cả mọi thứ trừ javascriptcookies.

Xem thêm các thiết lập lựa chọn sau đây: Ví dụ
https://github.com/ThatOneGuyDotNet/QuickJava/blob/master/defaults/preferences/defaults.js

Xem thêm các lệnh ở đây:
https://github.com/facebook/php-webdriver/wiki/Example-command-reference

use Facebook\WebDriver\Firefox\FirefoxProfile; 
use Facebook\WebDriver\Firefox\FirefoxDriver; 
use Facebook\WebDriver\Remote\DesiredCapabilities; 
use Facebook\WebDriver\Remote\RemoteWebDriver; 

// Change this to the path of you xpi 
$extensionPath = $this->container->getParameter('kernel.root_dir').'/../bin/selenium/quickjava-2.0.6-fx.xpi'; 

// Build our firefox profile 
$profile = new FirefoxProfile(); 
$profile->addExtension($extensionPath); 
$profile->setPreference('thatoneguydotnet.QuickJava.curVersion', '2.0.6.1'); 
$profile->setPreference('thatoneguydotnet.QuickJava.startupStatus.Images', 2); 
$profile->setPreference('thatoneguydotnet.QuickJava.startupStatus.AnimatedImage', 2); 
$profile->setPreference('thatoneguydotnet.QuickJava.startupStatus.CSS', 2); 
//$profile->setPreference('thatoneguydotnet.QuickJava.startupStatus.Cookies', 2); 
$profile->setPreference('thatoneguydotnet.QuickJava.startupStatus.Flash', 2); 
$profile->setPreference('thatoneguydotnet.QuickJava.startupStatus.Java', 2); 
//$profile->setPreference('thatoneguydotnet.QuickJava.startupStatus.JavaScript', 2); 
$profile->setPreference("thatoneguydotnet.QuickJava.startupStatus.Silverlight", 2); 

// Create DC + Driver 
$dc = DesiredCapabilities::firefox(); 
$dc->setCapability(FirefoxDriver::PROFILE, $profile); 

$driver = RemoteWebDriver::create($host, $dc); 
$driver->get('http://stackoverflow.com'); 

// Do stuff - https://github.com/facebook/php-webdriver/wiki/Example-command-reference 
//$driver->findElement(WebDriverBy::id("element-id")); 

// The HTML Source code 
$html = $driver->getPageSource(); 

// Firefox should be open and you can see no images or css was loaded