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

Тема в разделе "PHP", создана пользователем lexesv, 12 авг 2007.

Статус темы:
Закрыта.
Модераторы: latteo
  1. lexesv

    lexesv

    Регистр.:
    15 ноя 2006
    Сообщения:
    219
    Симпатии:
    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');
     
    latteo нравится это.
Статус темы:
Закрыта.