Upload файлов используя диалог загрузки

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

Upload файлов используя диалог загрузки

Сообщение igvard » 07 сен 2011, 17:26

Как делать upload файлов когда появляется виндовый диалог загрузки фалов?

пример для youtube.com.

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

<?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");

// сначала надо залогиниться на youtube.com

// navigate to google
$browser->navigate("http://upload.youtube.com/my_videos_upload");
// wait on browser
$browser->wait_for();

// тут задаём координаты кнопки Upload video 
$mouse->send_click(125,210);
sleep(3);

// обрабатываем диалог выбора фалов 
$window->execute_open_file("Выберите файлы для отправки","c:\\test\\Dom.mp4","&Открыть",false);

// Quit
$app->quit();
?>
Более подробно про функцию $window->execute_open_file($text,$path,$btn_text,$exactly=true);
$text - это часть текста заголовка или сам заголовок диалога которого надо обработать.
$path - это путь к файлу, который надо ввести в поле диалога
$btn_text - это текст кнопки на которую надо нажать
$exactly=true - искать диалог по части заголовка или по полному совпадению.

Эту функцию надо вызывать уже после того как диалог открыт. Теоретически эту функцию можно применять ко всем диалогам куда надо ввести путь и нажать какую то кнопку.
Есть ли & в названии кнопки можно легко определить нажав alt при открытом диалоге. Этот знак надо ставить перед той буквой, которая оказалась подчёркнутой после нажатия на alt.

satih
Сообщения: 270
Зарегистрирован: 31 мар 2010, 23:44

Re: Upload файлов используя диалог загрузки

Сообщение satih » 08 сен 2011, 03:20

спасибо, часто эти окна загрузки выскакивают.
igvard писал(а):Есть ли & в названии кнопки можно легко определить нажав alt при открытом диалоге. Этот знак надо ставить перед той буквой, которая оказалась подчёркнутой после нажатия на alt.
для инфы о кнопках, заголовках и т.п. неплохо подходит "AutoIt Window Info Tool", даст все тексты включая координаты и т.п.

LLlaMaH
Сообщения: 1
Зарегистрирован: 10 окт 2010, 18:26
Контактная информация:

Re: Upload файлов используя диалог загрузки

Сообщение LLlaMaH » 09 сен 2011, 12:24

Что-то у меня при загрузке аватарки ВКонтакте не отрабатывает:

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

$inputfile->click_by_atribute('name','photo',true);
$app->pause(3000);
$window->execute_open_file("Choose File to Upload",'c:\logo.jpg',"&Открыть",true);
Что не так я делаю?

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

Re: Upload файлов используя диалог загрузки

Сообщение igvard » 13 сен 2011, 15:40

Все вы делаете правильно, просто в данном случае показывается модальный диалог загрузки файлов, который останавливает поток выполнения команд и скрипт просто не попадает в команду execute_open_file до тех пор пока диалог не закроют ручками.

Для таких ситуаций в функцию execute_open_file был добавлен логический параметр thread.
По умолчанию thread=false. Когда этот параметр задан как true функция запускается как отдельный поток. При этом этот поток будет работать до тех пор пока не найдёт заданное окно или скрипт не остановится командой $app->quit(); или кнопкой Stop.

пример для вконтакте:

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

<?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");
// перейти на страничку вконтакте

// изменим свою фотографию 
$element->click_on_element_by_inner_text("Изменить фотографию",true);
sleep(2);
// загрузим новую
$element->click_on_element_by_inner_text("Загрузить новую фотографию",true);
sleep(2);
// вызовем функцию как поток
$window->execute_open_file("Выбор ",'c:\\xhe.jpg',"&Открыть",false,true);
sleep(3);
// кликнем на inputfile элемент для того что бы отобразить диалог загрузки файлов
$inputfile->click_by_atribute('name','photo',true);

// Quit
$app->quit();
?>
Все версии 4.1.1 сегодня были перезалиты с изменением функции execute_open_file.

xyu
Сообщения: 91
Зарегистрирован: 06 ноя 2010, 17:47

Re: Upload файлов используя диалог загрузки

Сообщение xyu » 16 окт 2011, 07:31

Не работает с установленным silverlight http://www.microsoft.com/getsilverlight ... fault.aspx

xyu
Сообщения: 91
Зарегистрирован: 06 ноя 2010, 17:47

Re: Upload файлов используя диалог загрузки

Сообщение xyu » 16 окт 2011, 08:12

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

$window->execute_open_file("Открыть","c:\\test","&Открыть",false,true);
Вложения
1.jpg
1.jpg (167.63 КБ) 538 просмотров

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

Re: Upload файлов используя диалог загрузки

Сообщение igvard » 17 окт 2011, 01:08

а как именно не работает? диалог появляется, но не нажимается кнопка и не заполняется поле?

xyu
Сообщения: 91
Зарегистрирован: 06 ноя 2010, 17:47

Re: Upload файлов используя диалог загрузки

Сообщение xyu » 17 окт 2011, 01:40

Да

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

Re: Upload файлов используя диалог загрузки

Сообщение sas » 16 май 2012, 21:45

а что можно посоветовать тем у кого диалог модальный и версия basic у которой нет ф-ии execute? решение с autoit знаю, а можно средствами xhe?

fangetehum
Сообщения: 6
Зарегистрирован: 23 дек 2008, 12:43

Re: Upload файлов используя диалог загрузки

Сообщение fangetehum » 28 ноя 2012, 22:25

не работает эта функция (execute_open_file) - открывается диалоговое окно и ничего не делается (про AutoIT знаю, очень сильно охота реализовать без помощи AutoIt).
Система: Win7 64, SilverLight удалил, IE10, XWeb однопоточный

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 2642
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Upload файлов используя диалог загрузки

Сообщение bigfozzy » 29 ноя 2012, 15:23

принято, бум разбираться

oleg88889
Сообщения: 128
Зарегистрирован: 19 мар 2013, 14:35

Re: Upload файлов используя диалог загрузки

Сообщение oleg88889 » 19 мар 2013, 14:39

bigfozzy писал(а):принято, бум разбираться
Разобрались? Надо аватарки выгружать, не получается.

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 2642
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Upload файлов используя диалог загрузки

Сообщение bigfozzy » 19 мар 2013, 15:38

да, функция должна работать

oleg88889
Сообщения: 128
Зарегистрирован: 19 мар 2013, 14:35

Re: Upload файлов используя диалог загрузки

Сообщение oleg88889 » 22 мар 2013, 12:21

Не работает. Пробовал указывать имя файла с разрешением, пробовал путь с одним слешем, два последних параметра пробовал во всех вариациях. На скрине окно выгрузки аватарки фейсбука. Что не так делаю?
Вложения
face.PNG
face.PNG (74.49 КБ) 373 просмотра

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 2642
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Upload файлов используя диалог загрузки

Сообщение bigfozzy » 25 мар 2013, 12:34

на этой неделе буду плотно заниматься решением этой проблемы.

Ответить