Помогите новичку

вопросы и ответы по использованию PHP
Ответить
rycost
Сообщения: 12
Зарегистрирован: 10 апр 2015, 00:35

Помогите новичку

Сообщение rycost » 10 апр 2015, 00:53

Здравствуйте. Подскажите как правильно настроить работу формы добавления фаилов.
Я ознакомился с информацией здесь --http://www.x-scripts.com/articles/inputfile.php
Но, дальше открытия формы добавления фаила я не продвинулся.
Помогите разобраться.

Клава
Сообщения: 71
Зарегистрирован: 22 янв 2015, 17:29

Re: Помогите новичку

Сообщение Клава » 10 апр 2015, 01:49

rycost писал(а):Здравствуйте. Подскажите как правильно настроить работу формы добавления фаилов.
Я ознакомился с информацией здесь --http://www.x-scripts.com/articles/inputfile.php
Но, дальше открытия формы добавления фаила я не продвинулся.
Помогите разобраться.
Выложи код , где не получается. Экстрасенсы на больничном :D

rycost
Сообщения: 12
Зарегистрирован: 10 апр 2015, 00:35

Re: Помогите новичку

Сообщение rycost » 10 апр 2015, 09:28

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

//Заголовок (70)
$title1=("Заголовок");

//Описание (500)
$description1=("Текст.");


/////////////// Авторизация ///////////////////
$browser->navigate("http://nisidi.com.ua/browse_listings.php");
$input->set_value_by_name("username","логин");
$input->set_value_by_name("password","пароль");
$button->click_by_name("Login");
sleep(9);


///////////// Добавить объявление ///////////////////
$browser->navigate("http://nisidi.com.ua/newad.php");
$listbox->select_value_by_name("category","63");
$button->click_by_name("Choose_categ");
$browser->wait_for(60,1);
$input->set_inner_text_by_name("title",$title1);
$textarea->set_inner_text_by_name("description",$description1);
$input->set_inner_text_by_name("price","4");
$listbox->select_value_by_name("country","Украина");
$browser->wait_for(60,1);
$listbox->select_value_by_name("region","Харьков");
$browser->wait_for(60,1);
$button->click_by_name("Submit");


/////////////// Добавить фото ///////////////////
// пробовал этот код, не вышло ;)

// получим все картинки в папке в виде строки
$str_images=$folder->get_all_items($str_img_path);
// разобъём строку на массив путей
$a_images=explode("\n",$str_images);


// переход на добавление объявления
//$browser->navigate("http://nisidi.com.ua/newad.php?step=4");


// добавим фото
for($i=0;$i<count($a_images);$i++)
{
// задать обработку для диалога добавления файла
$window->execute_open_file("Выбор файла",trim($a_images[$i]),"&Открыть",false,true);
// загрузить файлы
$inputfile->click_by_name("files");
$inputfile->set_value_by_name("files",trim($a_images[$i]));
// загрузить фото
$button->click_by_inner_text("Загрузить сейчас");


sleep(5);
// загрузить следующий
$anchor->click_by_inner_text("Загрузить другой файл");
}


//$anchor->click_by_inner_text("Выход",false);// Quit
$app->quit();
?>

Аватара пользователя
k907
Сообщения: 322
Зарегистрирован: 21 май 2014, 20:32

Re: Помогите новичку

Сообщение k907 » 10 апр 2015, 11:30

rycost писал(а):<?php
// пробовал этот код, не вышло ;)

// получим все картинки в папке в виде строки
$str_images=$folder->get_all_items($str_img_path);
// разобъём строку на массив путей
$a_images=explode("\n",$str_images);


// переход на добавление объявления
//$browser->navigate("http://nisidi.com.ua/newad.php?step=4");


// добавим фото
for($i=0;$i<count($a_images);$i++)
{
// задать обработку для диалога добавления файла
$window->execute_open_file("Выбор файла",trim($a_images[$i]),"&Открыть",false,true);
// загрузить файлы
$inputfile->click_by_name("files");
$inputfile->set_value_by_name("files",trim($a_images[$i]));
// загрузить фото
$button->click_by_inner_text("Загрузить сейчас");


sleep(5);
// загрузить следующий
$anchor->click_by_inner_text("Загрузить другой файл");
}
Замените на это:
// получим все картинки в папке в виде строки
$str_images=$folder->get_all_items($str_img_path);
// разобьём строку на массив путей
$a_images=explode("\r\n",$str_images);

// уберем файлы с неподдерживаемым расширением (сайт работает только с JPG, JPEG)
$image = "";
foreach ($a_images as $value) {
if (stripos($value,".JPG") !== false or stripos($value,".JPEG") !== false )
$image .= "\"$value\" ";
}

// переход на добавление объявления
//$browser->navigate("http://nisidi.com.ua/newad.php?step=4");

// добавим все фото
$window->execute_open_file("Выбор",$image,"&Открыть",false,true);
sleep(3);

// открыть диалоговое окно
$element->click_by_name("file");
$browser->wait_for(60,1);
sleep(15);
Разработка решений для автоматизации вашего бизнеса. Telegram: https://t.me/k90_7

rycost
Сообщения: 12
Зарегистрирован: 10 апр 2015, 00:35

Re: Помогите новичку

Сообщение rycost » 10 апр 2015, 13:12

Заменил.
Хюман выдаёт ошибку

"C:\XWeb\Human Emulator Advanced 4.9.17\My Scripts\images\4.jpg" "C:\XWeb\Human Emulator Advanced 4.9.17\My Scripts\images\5.jpg" not exist

Хотя (4.jpg, 5.jpg) находятся в той папке.
В переменной $str_img_path выводил путь к папке (images) и полный (C:\XWeb.....\images) и урезанный (images)

Клава
Сообщения: 71
Зарегистрирован: 22 янв 2015, 17:29

Re: Помогите новичку

Сообщение Клава » 10 апр 2015, 13:42

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

rycost
Сообщения: 12
Зарегистрирован: 10 апр 2015, 00:35

Re: Помогите новичку

Сообщение rycost » 10 апр 2015, 14:34

Инфо панель показала --

Window.execute_open_file?text=Выбор&path="C:\XWeb\Human+Emulator+Advanced+4.9.17\My+Scripts\images\4.jpg"+"C:\XWeb\Human+Emulator+Advanced+4.9.17\My+Scripts\images\5.jpg"+&bt ...
=>
false

Аватара пользователя
k907
Сообщения: 322
Зарегистрирован: 21 май 2014, 20:32

Re: Помогите новичку

Сообщение k907 » 10 апр 2015, 14:42

rycost писал(а): Хюман выдаёт ошибку
"C:\XWeb\Human Emulator Advanced 4.9.17\My Scripts\images\4.jpg" "C:\XWeb\Human Emulator Advanced 4.9.17\My Scripts\images\5.jpg" not exist
Это баг версии 4.9.17, обновитесь до последней версии, там эта проблема решена.
Разработка решений для автоматизации вашего бизнеса. Telegram: https://t.me/k90_7

rycost
Сообщения: 12
Зарегистрирован: 10 апр 2015, 00:35

Re: Помогите новичку

Сообщение rycost » 10 апр 2015, 15:53

Обновил, моя проблема осталась

Инфо панель показала следующее

Window.execute_open_file?text=Выбор&path=&btn_text=&Открыть&exactly=&thread=1
=>
false
--------------------------------------------------------------------------------

Folder.get_all_items?path=C:\XWeb\Human+Emulator+Advanced+4.9.17\My+Scripts\images&include_subfolders=&only_folders=
=>

Аватара пользователя
k907
Сообщения: 322
Зарегистрирован: 21 май 2014, 20:32

Re: Помогите новичку

Сообщение k907 » 10 апр 2015, 16:08

Что-то вы не то установили, по строчке "Folder.get_all_items?path=C:\XWeb\Human+Emulator+Advanced+4.9.17\My+Scripts\images&include_subfolders=&only_folders=" в информ. панели видно что версия программы 4.9.17, а должна быть 4.9.18.
Разработка решений для автоматизации вашего бизнеса. Telegram: https://t.me/k90_7

rycost
Сообщения: 12
Зарегистрирован: 10 апр 2015, 00:35

Re: Помогите новичку

Сообщение rycost » 10 апр 2015, 16:09

спасибо, сейчас проверю

rycost
Сообщения: 12
Зарегистрирован: 10 апр 2015, 00:35

Re: Помогите новичку

Сообщение rycost » 10 апр 2015, 16:29

Вы абсолютно правы, я в скрипте забыл исправить старый путь к папке.
Теперь всё работает.
Спасибо большое всем кто откликнулся :!:

И ещё в процессе возник ещё один вопрос.
Как реализовать функцию ?
пример

if(если есть кнопка с определённым текстом)
{нажать на нее и перезагрузить страницу}
ifelse
{если кнопки с текстом нет, нажать на определённую кнопку}

Аватара пользователя
k907
Сообщения: 322
Зарегистрирован: 21 май 2014, 20:32

Re: Помогите новичку

Сообщение k907 » 10 апр 2015, 16:44

$класс->is_exist_by_inner_text("текст",false) проверяет существование элемента на странице
Последний раз редактировалось k907 10 апр 2015, 16:46, всего редактировалось 1 раз.
Разработка решений для автоматизации вашего бизнеса. Telegram: https://t.me/k90_7

rycost
Сообщения: 12
Зарегистрирован: 10 апр 2015, 00:35

Re: Помогите новичку

Сообщение rycost » 10 апр 2015, 16:46

спасибо

Ответить