выбрать файл и нажать ОК для окна загрузки из flash

Все вопросы касающиеся использования
программы можно задать здесь
Ответить
sas
Сообщения: 75
Зарегистрирован: 24 апр 2011, 18:46

выбрать файл и нажать ОК для окна загрузки из flash

Сообщение sas » 25 апр 2011, 00:51

как загрузить фотку - ввести имя файла и нажать ОК для окна загрузки файла из activex flash?
тут http://www.olx.ru/posting.php?src=8

вообще при клике на кнопке открывается диалоговое окно и работа сценария останавливается. как продолжить работу чтобы как вариант получить имена всех окон и кликнуть в координаты окна где поле ввода, послать нажатие paste и послать клик на ОК?

Аватара пользователя
igvard
Site Admin
Сообщения: 241
Зарегистрирован: 31 июл 2008, 22:53

Re: выбрать файл и нажать ОК для окна загрузки из flash

Сообщение igvard » 26 апр 2011, 01:29

вот у меня получился такой вот скрипт:

Код: Выделить всё

<?php

$xhe_host ="127.0.0.1:7010";

// The following code is required to properly run XWeb Human Emulator
require("../Templates/xweb_human_emulator.php");

// navigate to google
$browser->navigate("http://www.olx.ru/posting.php?src=8");
// wait on browser
$browser->wait_for(30,1);

// установить фокус на ссылку что бы в браузере появилась нужная часть страницы
$anchor->set_focus_by_number(36);
sleep(1);
$mouse->click(270,75); // надо подобрать ваши координаты кнопки после установки фокуса на ссылку 
// для этого просто наведите курсор на кнопку после того как сработает установка фокуса на ссылку и посмотрите координаты в панели состояния программы
sleep(3);

//$keyboard->send_input("C:\\tmp.jpeg",$timeout=1) 
$keyboard->input("C:\\tmp.jpeg",1); // задаём путь
$keyboard->press_key_by_code(13); // жмём enter

// Quit
$app->quit();
?>
В следующую версию будет добавлена функция $window->execute_open_file

в самом коде для вашего случая функция будет выглядеть следующим образом:

Код: Выделить всё

$window->execute_open_file("Выберите файлы для отправки с помощью www.olx.ru","C:\\tmp.jpeg","&Открыть");
функция и её описание:
$window->execute_open_file($text,$path,$btn_text,$exactly=true);

$text - название диалога
$path - задаваемый путь к файлу
$btn_text - полное название кнопки на которую нужно нажать в завершении
$exactly - искать окно по всему тексту окна или только по части

sas
Сообщения: 75
Зарегистрирован: 24 апр 2011, 18:46

Re: выбрать файл и нажать ОК для окна загрузки из flash

Сообщение sas » 26 апр 2011, 20:39

функция интересная, будем ждать обновления, к сожалению у меня basic версия

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

ОДНАКО!

решил проверить сценарий, и кнопка нажалась. теперь я непонимаю почему сегодня команда $mouse->click
выполнилась если вчера сценарий останавливался? почему сегодня он не остановился?

предполагаю что команды работающие с GUI встроенного браузера ждут когда доступ к GUI браузера освободится, а команды виндовые и типа эхо продалгажют работать. так?

так что спасибо. если можно еще разъяснить почему это работает.

sas
Сообщения: 75
Зарегистрирован: 24 апр 2011, 18:46

Re: выбрать файл и нажать ОК для окна загрузки из flash

Сообщение sas » 28 апр 2011, 20:57

в какой-то момент и теперь всегда окно ввода имени файла стало появлятся на заднем фоне. т.е. окно хумана остается на переднем плане. если сделать еще один клик на любой области браузера то окно выбора файла появляется и мигает заголовком типа "я тут, че, невидишь, закрой сперва меня". как сделать так чтобы окно выбора файла показывалось на переднем плане сразу?

Аватара пользователя
igvard
Site Admin
Сообщения: 241
Зарегистрирован: 31 июл 2008, 22:53

Re: выбрать файл и нажать ОК для окна загрузки из flash

Сообщение igvard » 29 апр 2011, 14:00

а хуман при вызове окна в каком состояние находится в свёрнутом или открытом?

sas
Сообщения: 75
Зарегистрирован: 24 апр 2011, 18:46

Re: выбрать файл и нажать ОК для окна загрузки из flash

Сообщение sas » 01 май 2011, 00:21

в открытом максимайзед

Ответить