Не могу нажать

вопросы и ответы по использованию PHP
Ответить
Клава
Сообщения: 71
Зарегистрирован: 22 янв 2015, 17:29

Не могу нажать

Сообщение Клава » 24 апр 2015, 07:51

Помогите пожалуйста кто может
Вроде раньше работало, кликал через $ankor ->
Сейчас обернули в див

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

<?php
$xhe_host ="127.0.0.1:7010";

// ????????? ?????? ??? ?????????? ??????????, ???? ??? ?? ?????????
if (!isset($path))
  $path="../Templates/xweb_human_emulator.php";
require($path);

// ??????
echo "<hr><font color=blue>submitter->".basename (__FILE__)."</font><hr>";
$browser->refresh();
$browser->clear_cookies('',true);
// 2 ???
$browser->navigate("https://passport.yandex.ru/registration?mode=register&retpath=https%3A%2F%2Fmail.yandex.ru&from=mail&origin=hostroot_ru_nol_mobile_enter");
//$btn->click_by_inner_text("???????????",false);
// wait on browser
$browser->wait_for(60,1);

echo "??????<br><br>";
//for ($i=0;$i<3;$i++) { 
echo $imia= $submitter->generate_random_name("RU", "women");
$input->set_focus_by_name("firstname");
$input->send_keyboard_input_by_name("firstname","$imia");
  echo $fio=$submitter->generate_random_second_name("RU","women");
$input->set_focus_by_name("lastname");

$input->send_event_by_name("lastname","onclick");
$element->send_keyboard_input_by_name("lastname","$fio");
$input->click_by_name("login");

	$len_text = $submitter->generate_random_number(9,12);
   echo $login = $submitter->generate_random_text($len_text,1);


$input->set_focus_by_name("login");
$keyboard->send_input("$login",10);
$input->set_focus_by_name("password");
echo $pass = $submitter->generate_random_text($len_text,1);
$keyboard->send_input("$pass",10);
$input->set_focus_by_name("password_confirm");
$keyboard->send_input("$pass",10);
$div->click_by_number(59);
 //$div->click_by_attribute ("human-confirmation-switch-wrap",true);
$div->click_by_attribute("class","human-confirmation-switch-wrap",false);
echo $div->get_all_attributes_by_number(59);
$div->add_attribute_by_number(59,"id1","_val1");
echo $div->get_all_attributes_by_number(59);
echo $div->get_width_by_number(59)."<br>";
echo $div->get_height_by_number(59);
$div->click_by_attribute("id1","_val1",true);
$element->click_by_number(119);
 $div->get_all_inner_texts_by_attribute("id1","_val1");


$app->quit();
?>
Нужно кликнуть на "У меня нет телефона"
Через координаты - куда то мимо,
Через $div->click_by_inner_text("Ввести номер телефонаУ меня нет телефона",false); в инфопонели true - но не кликает
так же через номер дива или номер элемента
через $div->send_event_by_inner_html("<label class="human-confirmation-switch human-confirmation-via-phone ",false,"onclick"); - ошибка
Если смотреть код то там
<label class="human-confirmation-switch human-confirmation-via-captcha">У меня нет телефона</label>
Как вообще сюда попасть?

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

Re: Не могу нажать

Сообщение bigfozzy » 24 апр 2015, 11:05

Попробуйте через http://humanemulator.net/objects/DOM/label.php

Например так : $label->get_by_attribute("class","human-confirmation-switch human-confirmation-via-captcha",true)->mouse_send_click(3,3);

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

Re: Не могу нажать

Сообщение Клава » 24 апр 2015, 19:26

спасибо! Из за недосыпа тормозил)
Кстати, чтоб капчу вывести из антикапчи - чтоб в MT вывести с нормальной кодировкой не надо MT RT перезапускать как тут на форуме советовали. Достаточно iconv

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

 $kk=$image->recognize_by_anticaptcha('image?key=',"C:\\tmp.jpg","ключ","http://antigate.com");
// выведем информацию

echo $anticaptcha->get_last_capcha_filename()."<br>";
echo $anticaptcha->get_last_capcha_id()."<br>";
echo $anticaptcha->get_last_capcha_result()."<br>";
// $kk=$anticaptcha->get_last_capcha_result();
$input->set_focus_by_name("answer");

$input->send_event_by_name("answer","onclick");
$txt=$kk;
///////////////////////////////////////////////////////////////////////////////////////////////
$txt = iconv('UTF-8', 'CP1251', $txt);
echo $txt;
//////////////////////////////////////////////////////////////////////////////////////////
$input->set_value_by_name("answer","$txt");

Ответить