كيفية جعل السيلينيوم يعمل مع PHP/Firefox3 على نظام Linux
سؤال
أحاول الحصول على السيلينيوم آر سي أعمل مع Firefox 3 على Linux مع PHP/Apache ولكني أواجه مشكلات.وإليكم ما قمت به:
- لقد قمت بتثبيت ملحق Firefox Selenium-IDE.
- على خادم الويب (والذي في حالتي هو في الواقع نفس الجهاز الذي يقوم بتشغيل Firefox)، قمت بتشغيل خادم السيلينيوم باستخدام:جافا -jar السيلينيوم-server.jar -interactive
- لدي برنامج PHP النصي على النحو التالي:
بي أتش بي:
require_once 'Testing/Selenium.php';
$browser = new Testing_Selenium("*custom /usr/lib/firefox-3.0.3/firefox", "https://www.example.com");
$browser->start();
عندما أقوم بتشغيل برنامج PHP النصي، فإنه يطلق علامة تبويب جديدة في Firefox، ولكن أحصل على رسالة الخطأ هذه:
The requested URL /selenium-server/core/RemoteRunner.html was not found on this server.
لقد حققت نجاحًا أكبر مع Firefox 2 (باستخدام "*firefox"
بدلاً من "*custom"
لكن لا أريد استخدام ذلك لمشروعي الحالي.
المحلول
لست متأكدًا من آداب الإجابة على سؤالك ...ولكن بعد التجربة بطريقة التجربة والخطأ، إليك كيف تمكنت من جعل السيلينيوم يعمل مع PHP/Firefox3 على Ubuntu.
- لقد قمت بتنزيل RC ونسخت دليل عميل php إلى /usr/share/php باسم "Selenium"
- لقد انتقلت إلى دليل خادم السيلينيوم في التنزيل، وبدأت السيلينيوم باستخدام
java -jar selenium-server.jar
- لقد قمت بإنشاء ملف تعريف Firefox جديد (عن طريق تشغيل Firefox -ProfileManager).لقد أطلقت على الملف الشخصي الجديد اسم "السيلينيوم"
- ضمن هذا الملف الشخصي، أقوم بتحرير تفضيلات شبكة Firefox لتوكيل جميع البروتوكولات عبر منفذ المضيف المحلي 4444.
لقد قمت بإنشاء برنامج PHP الخاص بي وقمت بتشغيله باستخدام هذا الأمر:
php -d include_path=".:/usr/share/php:/usr/share/php/Selenium/PEAR" test.php
لقد قمت بإدراج البرنامج النصي للاختبار الأول (الأساسي وغير PHPUnit وغير OO) أدناه للرجوع إليه.
require_once 'Testing/Selenium.php';
$oSelenium = new Testing_Selenium(
"*custom /usr/lib/firefox-3.0.3/firefox -P Selenium",
"https://www.example.com");
$oSelenium->start();
$oSelenium->open("/");
if (!$oSelenium->isElementPresent("id=login_button")) {
$oSelenium->click("logout");
$oSelenium->waitForPageToLoad(10000);
if (!$oSelenium->isElementPresent("id=login_button")) {
echo "Failed to log out\n\n";
exit;
}
}
$oSelenium->type("login", "my_username");
$oSelenium->type("password", "my_password");
$oSelenium->click("login_button");
$oSelenium->waitForPageToLoad(10000);
$oSelenium->click("top_nav_campaigns");
$oSelenium->stop();
نصائح أخرى
أستخدم phpunit وselenium RC php api لتشغيل حالات الاختبار الخاصة بي.تبدو حالة الاختبار الخاصة بي
1235$Deepan@Newton~/selenium/ide_scripts$
cat mytest.php
'FF on linux',
'browser' => '*firefox',
'host' => '10.211.55.8',
'port' => 4444,
'timeout' => 30000,
),
array(
'name' => 'FF on windows',
'browser' => '*firefox',
'host' => '10.211.55.5',
'port' => 4444,
'timeout' => 30000,
),
*/
array(
'name' => 'Google Chrome on windows',
'browser' => '*googlechrome',
'host' => '10.211.55.5',
'port' => 4444,
'timeout' => 30000,
),
/*
array(
'name' => 'IE on windows',
'browser' => '*iexplore',
'host' => '10.211.55.5',
'port' => 4444,
'timeout' => 30000,
),
array(
'name' => 'Safari on MacOS X',
'browser' => '*safari',
'host' => 'localhost',
'port' => 4444,
'timeout' => 30000,
),
array(
'name' => 'Firefox on MacOS X',
'browser' => '*chrome',
'host' => 'localhost',
'port' => 4444,
'timeout' => 30000,
),
*/
array(
'name' => 'Google Chrome on MacOS X',
'browser' => '*googlechrome',
'host' => 'localhost',
'port' => 4444,
'timeout' => 30000,
)
);
protected function setUp()
{
//$this->setBrowser("*chrome");
$this->setBrowserUrl("http://www.facebook.com/");
}
public function testMyTestCase()
{
$this->open("/index.php?lh=94730c649368393b6954cb9fc0802e0a&eu=iKjrC7Q2aC-8tcU7PVLilg");
$this->type("email", "myemail@domain.com");
$this->type("pass", "mypassword");
$this->click("persistent");
$this->click("//input[@type='submit']");
$this->waitForPageToLoad("30000");
sleep(10);
$this->open("http://apps.facebook.com/myapp/");
sleep(4);
$this->click("link=Play");
$this->waitForPageToLoad("30000");
sleep(4);
$this->click("navAccountLink");
sleep(4);
$this->click("link=Logout");
$this->waitForPageToLoad("30000");
sleep(4);
}
}
?>
1332$Deepan@Newton~/selenium/ide_scripts$
phpunit mytest.php
سيؤدي هذا إلى الاتصال بالمتصفحات التي تعمل داخل الأجهزة الافتراضية