- Автор темы
- #1
Здравствуйте, есть очень наболевший вопрос, который пытаюсь решить вот уже больше месяца.
Есть класс для управления IE из PHP приложения на локальной машине.
Проблема в том, что он не видит большинство форм для автозаполнения.
Перерыл кучу документации пытаясь сделать чтото подобное в связке XUL+php.
Или вообще возможно ли такое сделать в ксуле и как.
Нужно автозаполнение форм, причём поэтапное. Сначала приложение выполняет регистрацию на сайте, потом идёт в аккаунт, после чего заполняет нужные формы, загружает картинки и выходит из аккаунта. После чего КУКИ должны удаляться.
Помогите пожалуйста!!!
Пример класса на ПХП (работает локально под виндой)
Есть класс для управления 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');