Управление браузером на PHP/XUL?

Статус
В этой теме нельзя размещать новые ответы.

lexesv

Постоялец
Регистрация
15 Ноя 2006
Сообщения
118
Реакции
103
Здравствуйте, есть очень наболевший вопрос, который пытаюсь решить вот уже больше месяца.

Есть класс для управления IE из PHP приложения на локальной машине.
Проблема в том, что он не видит большинство форм для автозаполнения.

Перерыл кучу документации пытаясь сделать чтото подобное в связке XUL+php.

Или вообще возможно ли такое сделать в ксуле и как.

Нужно автозаполнение форм, причём поэтапное. Сначала приложение выполняет регистрацию на сайте, потом идёт в аккаунт, после чего заполняет нужные формы, загружает картинки и выходит из аккаунта. После чего КУКИ должны удаляться.

Помогите пожалуйста!!!



Пример класса на ПХП (работает локально под виндой)


PHP:
//class 
class MechanizeIE {
    var $ie = NULL;
    
    

function StartIE() {
    $this->ie = new COM("InternetExplorer.Application")
                or die("Unable to start IE");

    /* set the co-ordiantes
       for the IE window */
    $this->ie->left = 400;
    $this->ie->top  = 0;
    $this->ie->width  = 600;
    $this->ie->height = 400;

    /* turn off all toolbars */
    $this->ie->menubar   = 1;
    $this->ie->toolbar   = 1;
    $this->ie->statusbar = 1;

    /* make IE visible */
    $this->ie->visible = 1;
}


function navigateIE ($url) {
    $this->ie->navigate($url);
    $this->wait_while_busy();
}





function setformIE ($textbox, $value) {
  $index = 0;
  $cnt   = 0;
  $doc   = $this->ie->Document;
  $forms = $doc->forms;

  for($i = 0; $i < $forms->length; $i++) {
    $form = $forms->item($i);

    for($j = 0; $j < $form->elements->all->length; $j++)
    {
      $e_name = $form->elements->all{$j}
                     ->getAttribute("name");

      if($e_name == $textbox) {
        if($index == $cnt) {
          $form->elements->all{$j}->{value} = $value;
          return;
        } else {$cnt++;}
      }
    }
  }
  print "could not find form element : " . $textbox . "\n";
}



function pushbuttonIE ($button) {
  $index = 0;
  $cnt   = 0;
  $doc   = $this->ie->Document;
  $forms = $doc->forms;

  for($i = 0; $i < $forms->length; $i++) {
   $form = $forms->item($i);

   for($j = 0; $j < $form->elements->all->length; $j++) {
    $e_name = $form->elements->all{$j}
                   ->getAttribute("value");
    $e_type = $form->elements->all{$j}
                   ->getAttribute("type");

    if($e_name == $button and $e_type == submit) {
      if($index == $cnt) {
        $form->elements->all{$j}->click();
        $this->wait_while_busy();
        return;
      } else {$cnt++;}
    }
   }
  }
  print "could not find form button : " . $button . "\n";
}
}





//main script
include 'classMechanizeIE.php';

$myIE = &New MechanizeIE;


$myIE->StartIE();
$myIE->navigateIE('mysite.com');


$myIE->setformIE('username', 'user');
$myIE->setformIE('password', 'pass');


$myIE->pushbuttonIE('Login');
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху