Помогите довести клик до ума

вопросы и ответы по использованию PHP
Ответить
dmmmy3
Сообщения: 32
Зарегистрирован: 25 авг 2020, 14:37

Помогите довести клик до ума

Сообщение dmmmy3 » 21 сен 2020, 19:37

Здравствуйте!

Есть игра, нужно нажать, на постоянно меняющийся коэфициент, события 9,5 меньше, попытался написать скрипт по предыдущим примерам, но не хочет так кликать, в ссылке общий класс: odd, головой понимаю что скорее надо по классу кликать, а оформить не могу! Помогите пожалуйста!
9.5 меньше.jpg
9.5 меньше.jpg (187.46 КБ) 1404 просмотра

<?php

$xhe_host = "127.0.0.1:6";

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



$text="м сете (9.5) мен - ";
$evnt = $span->get_by_inner_text($text, false);
 
while(!$evnt->is_visibled())
{
  echo "Приём ставок приостановлен, ждём!<br>";
  sleep(1);
 
  $evnt = $span->get_by_inner_text($text, false);
}
 
$prnt= $evnt->get_parent(2);
echo $prnt->get_inner_html();
$an= $prnt->get_child_by_attribute("href","index",false);
 
echo $an->get_href();
$an->send_mouse_click(3,2);


// Quit
$app->quit();
?>

Аватара пользователя
Support
Site Admin
Сообщения: 1000
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Помогите довести клик до ума

Сообщение Support » 21 сен 2020, 20:07

Получаем по куску текста элемент. Если получили и у элемента есть текст, то получаем дочерний и кликаем по нему.

$text = "9.5 мен в 3-м сете";

$sp = $span->get_by_inner_text($text, false);

if($sp->get_inner_text()!="")
{
   $odd = $sp->get_child_by_attribute("class","odd");
   $odd->send_mouse_click(3,3);
}

dmmmy3
Сообщения: 32
Зарегистрирован: 25 авг 2020, 14:37

Re: Помогите довести клик до ума

Сообщение dmmmy3 » 22 сен 2020, 20:29

Большое спасибо за помощь!!!

dmmmy3
Сообщения: 32
Зарегистрирован: 25 авг 2020, 14:37

Re: Помогите довести клик до ума

Сообщение dmmmy3 » 22 сен 2020, 22:00

Здравствуйте, поправьте пожалуйста где не так

Имеем страницу с надписью: "Не рассчитано", класс у нее "ncalc". Задача проверять эту надпись, переодически, секунд через 20 перезагружая эту страницу. Пока надпись есть перезагружаем и проверяем, как исчезла идем на другую страницу.

Накидал такой скрипт, но не работает:
while($span->is_exist_by_attribute("class","ncalc", true));
{
sleep(20);
$browser->refresh();
echo "<br>Ставка ещё не рассчитана. жду!<br>";
sleep(4);
}
if ($span->is_exist_by_inner_text("Не рассчитано...", false));
{
//переходим в выигравшие ставки
$checkbox->click_by_number(4);
$button->click_by_value("Применить", false);
}
история.jpg
история.jpg (196.42 КБ) 1387 просмотров

Аватара пользователя
Support
Site Admin
Сообщения: 1000
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Помогите довести клик до ума

Сообщение Support » 23 сен 2020, 00:02

Лишние точки с запятой после операторов while и if
// пока есть
while($span->is_exist_by_attribute("class","ncalc", true))
{
   sleep(20);
   $browser->refresh();
   echo "<br>Ставка ещё не рассчитана. жду!<br>";
   sleep(4);
}

// надписи нету
if (!$span->is_exist_by_inner_text("Не рассчитано...", false))
{
    //переходим в выигравшие ставки
    $checkbox->click_by_number(4);
    $button->click_by_value("Применить", false);
}
По идее можно второй раз не делать проверку если вышли из while
// пока есть
while($span->is_exist_by_attribute("class","ncalc", true))
{
   sleep(20);
   $browser->refresh();
   echo "<br>Ставка ещё не рассчитана. жду!<br>";
   sleep(4);
}

     // вышли из цикла надписи нету
    // переходим в выигравшие ставки
    $checkbox->click_by_number(4);
    // нажимаем кнопку применить
    $button->click_by_value("Применить", false);

Ответить