كيفية جعل السيلينيوم يعمل مع PHP/Firefox3 على نظام Linux

StackOverflow https://stackoverflow.com/questions/166941

سؤال

أحاول الحصول على السيلينيوم آر سي أعمل مع 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.

  1. لقد قمت بتنزيل RC ونسخت دليل عميل php إلى /usr/share/php باسم "Selenium"
  2. لقد انتقلت إلى دليل خادم السيلينيوم في التنزيل، وبدأت السيلينيوم باستخدام java -jar selenium-server.jar
  3. لقد قمت بإنشاء ملف تعريف Firefox جديد (عن طريق تشغيل Firefox -ProfileManager).لقد أطلقت على الملف الشخصي الجديد اسم "السيلينيوم"
  4. ضمن هذا الملف الشخصي، أقوم بتحرير تفضيلات شبكة Firefox لتوكيل جميع البروتوكولات عبر منفذ المضيف المحلي 4444.
  5. لقد قمت بإنشاء برنامج 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

سيؤدي هذا إلى الاتصال بالمتصفحات التي تعمل داخل الأجهزة الافتراضية

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top