Помогите по Human Emulator РНР

Discussion in 'PHP' started by valind, 19 May 2012.

  1. valind

    valind New Member

    Joined:
    18 Nov 2011
    Messages:
    29
    Likes Received:
    3
    Reputations:
    0
    Всем привет!
    Возникла небольшая дилемма с настройкой скрипта в Human Emulator, подскажите советом. Нужно чтобы в две ячейки (поля ввода), вставлялись по очереди индивидуальные значения, которые я заблаговременно подготовил и сохранил в текстовички.

    Вот собственно, что имеется:
    1. Страничка в двумя полями ввода – адрес получателя, текст сообщения и кнопка "отправить" :D ;
    2. Два текстовика, в первом – адрес получателя, во втором – текст сообщения.

    В текстовике с адресами – 100шт получателей, для каждого получателя подготовлен свой индивидуальный текст. Это значить, что в текстовике с сообщениями – 100шт вариаций текста. Я думаю, что привязку по циклу (по количеству раз прохода страницы) достаточно сделать лишь к одному текставику, правильно? Ведь и там и там, одинаковое количество записей.
    Я набросал скрипт, но он у меня не фурычит. Плюс мне кажется, что это немного не тот скрипт, который необходим.

    PHP:
    <?php

    $xhe_host 
    ="127.0.0.1:7012";

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

    $adres_poluchatelya=file("adresa.txt")
    $tekst_soobshcheniya=file("text.txt")
    for (
    $i=0;$i<count($adres_poluchatelya);$i++)
    {
    $browser->navigate('http://www.domen.com/index.html');
    $browser->wait_for(10,0);
    $textarea->set_value_by_name('address','$adres_poluchatelya[$i]');
    $textarea->set_value_by_name('message','$tekst_soobshcheniya[$i]');
    $button->click_by_number('0');
    $browser->wait_for(10,0);
    }

    // Quit
    $app->quit();
    ?>
    Пожалуйста, подскажите решение! И кстати, может у меня стоят не те кавычки или может где-нибудь пробел не поставлен?
     
  2. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18

    $adres_poluchatelya=file("adresa.txt")
    $tekst_soobshcheniya=file("text.txt")

    точка с запятой в конце и там и там
     
  3. valind

    valind New Member

    Joined:
    18 Nov 2011
    Messages:
    29
    Likes Received:
    3
    Reputations:
    0
    Поставил, всё равно - не фурычит :( . Цикл проходит нормально! Как указал адреса троих (для пробы) получателей в текстовике, так три раза и идёт открытие и вбивание страницы. Вот только вбивается не то. Должен вбиваться адрес, который записан в текстовике, но в место него, это вбивается - $adres_poluchatelya[$i]
    Точно также и в толе для сообщения, должен быть вбит текст моего сообщения, который возьмётся из моего текстовика, но вбивается это - $tekst_soobshcheniya[$i]

    Что делать?! У меня паника!
     
  4. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    Убрать обрамляющие имена этих переменных одинарные кавычки.
     
    #4 GRRRL Power, 21 May 2012
    Last edited: 21 May 2012
  5. valind

    valind New Member

    Joined:
    18 Nov 2011
    Messages:
    29
    Likes Received:
    3
    Reputations:
    0
    Всё равно, эффекта никакого :(
     
  6. valind

    valind New Member

    Joined:
    18 Nov 2011
    Messages:
    29
    Likes Received:
    3
    Reputations:
    0
    Урааа, у меня получилось!!!
    Кому интересно, то код выглядит так:
    PHP:
    <?php 

    $xhe_host 
    ="127.0.0.1:7012"

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

    $adres_poluchatelya file("adresa.txt"); 

    $tekst_soobshcheniya file("text.txt"); 

    for (
    $i=0;$i<count($adres_poluchatelya);$i++) 


    $browser->navigate('http://www.domen.com/index.html'); 

    $browser->wait_for(10,0); 

    $textarea->set_value_by_name('address',"$adres_poluchatelya[$i]"); 

    $textarea->set_value_by_name('message',"$tekst_soobshcheniya[$i]"); 

    $button->click_by_number('0'); 

    $browser->wait_for(10,0); 


    // Quit 
    $app->quit(); 
    ?>
    Кое-где, нужны пробелы и двойные кавычки.
     
  7. valind

    valind New Member

    Joined:
    18 Nov 2011
    Messages:
    29
    Likes Received:
    3
    Reputations:
    0
    Ещё возможен такой вариант:
    PHP:
    <?php

    $xhe_host 
    ="127.0.0.1:7012";

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

    $adres=file('adresa.txt');
    $text=file('text.txt');

    $adres=array_map("trim",$adres);
    $text=array_map("trim",$text);

    $count count($adres);     //Если список большой, что бы скрипт не глючил, т.к. в цикле иногда запарка с подсчетом быват

    for ($i=0;$i<($count);$i++)
    {
        
    $browser->navigate("http://www.domen.com/index.html");
        
    $browser->wait_for(10,0);

        
    $textarea->set_value_by_name('address',$adres[$i]);
        
    $browser->wait_for(10,0); // добавляй желательно всегда вейты, меньше глюков будет

        
    $textarea->set_value_by_name('message',$text[$i]);
        
    $browser->wait_for(10,0);

        
    $button->click_by_number('0');
        
    $browser->wait_for(10,0);

        
    sleep(rand(3,8)); // слип нужен. Oпять же, глюков меньше будет.
    }

    // Quit
    $app->quit();
    ?>
    Кстати, написал человек отсюда http://zircool.ru/ и причём - совершенно безвозмездно! Огромное ему спасибо, за то, что помог!