Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Управление браузером на PHP

Сообщения:  [1-5] 

 
 автор: lexesv   (14.08.2007 в 17:06)   письмо автору
 
   для: Shiva   (14.08.2007 в 16:52)
 

форма есть 100%
вот хотя б такой пример


$myIE = &New MechanizeIE;

$myIE->StartIE();
$myIE->navigateIE('http://www.google.com.ua/advanced_search?hl=ru');
$myIE->setformIE('as_q', 'Delphi');

sleep(10);
$myIE->StopIE();

   
 
 автор: Shiva   (14.08.2007 в 16:52)   письмо автору
 
   для: lexesv   (14.08.2007 в 16:15)
 

У меня ваш код формы находит. Причем я предлагал ему несколько сайтов - яндекс, например. На странице, куда вы его отсылаете, точно есть форма? Не просто поля ввода без тега form?

   
 
 автор: lexesv   (14.08.2007 в 16:15)   письмо автору
 
   для: Shiva   (14.08.2007 в 05:38)
 

Да проблема в том что он даже форму не видит, то есть когда я делаю

echo $forms->length;


выводит 0

хотя формы на странице есть

   
 
 автор: Shiva   (14.08.2007 в 05:38)   письмо автору
 
   для: lexesv   (13.08.2007 в 17:11)
 

Обращайтесь к элементам формы напрямую, без ->all:

$e_name = $form->elements[$j]->getAttribute("value");

   
 
 автор: lexesv   (13.08.2007 в 17:11)   письмо автору
 
 

Здравствуйте, есть очень наболевший вопрос, который пытаюсь решить вот уже больше месяца.

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

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


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

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

     
    $this->ie->left = 400; 
    $this->ie->top  = 0; 
    $this->ie->width  = 600; 
    $this->ie->height = 400; 

     
    $this->ie->menubar   = 1; 
    $this->ie->toolbar   = 1; 
    $this->ie->statusbar = 1; 

     
    $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');


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

   

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования