$browser->navigate("http://humanemulator.net/objects/SYSTEM/mouse.php"); $browser->wait_for(60,1); $x = $anchor->get_x_by_inner_text("click", true); $y = $anchor->get_y_by_inner_text("click", true); echo " $x | $y <br>"; $mouse->move($x,$y);http://prntscr.com/rm6li9
Координаты элемента
Координаты элемента
Координаты элемента в браузере отличаются от координат в подвале программы
Разработка решений для автоматизации вашего бизнеса. Telegram: https://t.me/k90_7
Re: Координаты элемента
В подвале отображаются координаты без учета скрола.
Т.е координаты не элемента, а только мышки в браузере.
Т.е координаты не элемента, а только мышки в браузере.
Re: Координаты элемента
Курсор мыши перемещается в координаты 270 / 593, но программа показывает 341 / 743Т.е координаты не элемента, а только мышки в браузере.
Скрол сейчас не используется.
Другой пример:
//поле перемещения виртуального курсора в 0,0 программа показывает координаты Xv = 2 / Yv = 2 $mouse->send_move(0,0); //поле перемещения виртуального курсора в 12,10 программа показывает координаты Xv = 14 / Yv = 12 $mouse->send_move(12,10); //поле перемещения реального курсора в 0,0 программа показывает координаты X = 3 / Y = 2 $mouse->move(0,0); //поле перемещения реального курсора в 12,10 программа показывает координаты X = 19 / Y = 15 $mouse->move(12,10);os - win 7
изменен масштаб - http://prntscr.com/rn1o08
Разработка решений для автоматизации вашего бизнеса. Telegram: https://t.me/k90_7
Re: Координаты элемента
Добавили настройку - автокоррекция мыши - если ее отключить мышь будет точно наводится по координатам но может не попасть в кликабельную область объекта (по умолчанию есть смещение 2,2)
Re: Координаты элемента
В версии 7.0.45 проблема с координатами не решена.
Чем дальше перемещается мышь от угла браузера, тем больше погрешность между ожидаемыми и фактическими координатами.
Проблема только в режиме полной эмуляции.
Методы интерфейсов mouse_... тоже проверьте, пожалуйста
$full_emul = 1; for($i=0;$i<=10;$i++) { $x = $i*$i; $y = $i*$i; echo "Переместить мышь в координаты: x = $x | y = $y <br>"; if ($full_emul) { $mouse->move($x,$y); $x_real = $mouse->get_x(true); $y_real = $mouse->get_y(true); } else { $mouse->send_move($x,$y); $x_real = $mouse->get_x(true, $virtual=true ); $y_real = $mouse->get_y(true, $virtual=true ); } echo "Координаты после перемещения: x = $x_real | y = $x_real <br>"; echo "Разность между ожидаемыми и реальными координатами: x = ".($x_real - $x)." | y = ".($y_real - $y)." <br>"; echo "---------------------------------------- <br><br>"; }Результат с включенной настройкой "Автокоррекция мышки"
Переместим мышь в коордианты: x = 0 | y = 0 Координаты после перемещения: x = 0 | y = 0 Разность между ожидаемыми и реальными координатами: x = 0 | y = 0 ---------------------------------------- Переместим мышь в коордианты: x = 1 | y = 1 Координаты после перемещения: x = 1 | y = 1 Разность между ожидаемыми и реальными координатами: x = 0 | y = 0 ---------------------------------------- Переместим мышь в коордианты: x = 4 | y = 4 Координаты после перемещения: x = 5 | y = 5 Разность между ожидаемыми и реальными координатами: x = 1 | y = 1 ---------------------------------------- Переместим мышь в коордианты: x = 9 | y = 9 Координаты после перемещения: x = 11 | y = 11 Разность между ожидаемыми и реальными координатами: x = 2 | y = 2 ---------------------------------------- Переместим мышь в коордианты: x = 16 | y = 16 Координаты после перемещения: x = 20 | y = 20 Разность между ожидаемыми и реальными координатами: x = 4 | y = 4 ---------------------------------------- Переместим мышь в коордианты: x = 25 | y = 25 Координаты после перемещения: x = 31 | y = 31 Разность между ожидаемыми и реальными координатами: x = 6 | y = 6 ---------------------------------------- Переместим мышь в коордианты: x = 36 | y = 36 Координаты после перемещения: x = 45 | y = 45 Разность между ожидаемыми и реальными координатами: x = 9 | y = 9 ---------------------------------------- Переместим мышь в коордианты: x = 49 | y = 49 Координаты после перемещения: x = 61 | y = 61 Разность между ожидаемыми и реальными координатами: x = 12 | y = 12 ---------------------------------------- Переместим мышь в коордианты: x = 64 | y = 64 Координаты после перемещения: x = 80 | y = 80 Разность между ожидаемыми и реальными координатами: x = 16 | y = 16 ---------------------------------------- Переместим мышь в коордианты: x = 81 | y = 81 Координаты после перемещения: x = 101 | y = 101 Разность между ожидаемыми и реальными координатами: x = 20 | y = 20 ---------------------------------------- Переместим мышь в коордианты: x = 100 | y = 100 Координаты после перемещения: x = 125 | y = 125 Разность между ожидаемыми и реальными координатами: x = 25 | y = 25 ----------------------------------------С выключенной настройкой "Автокоррекция мышки" дельта в координатах отличается на 2 пикселя.
Разработка решений для автоматизации вашего бизнеса. Telegram: https://t.me/k90_7
Re: Координаты элемента
При 125% десктопа - это и есть то расхождение.
Это сделано для тех кто работает с координатами элементов, чтобы не делать перерасчет.
Можем добавить настройку ignore_scale_factor ?
При 100%:
Это сделано для тех кто работает с координатами элементов, чтобы не делать перерасчет.
Можем добавить настройку ignore_scale_factor ?
При 100%:
Переместить мышь в координаты: x = 0 | y = 0 Координаты после перемещения: x = 0 | y = 0 Разность между ожидаемыми и реальными координатами: x = 0 | y = 0 ---------------------------------------- Переместить мышь в координаты: x = 1 | y = 1 Координаты после перемещения: x = 1 | y = 1 Разность между ожидаемыми и реальными координатами: x = 0 | y = 0 ---------------------------------------- Переместить мышь в координаты: x = 4 | y = 4 Координаты после перемещения: x = 4 | y = 4 Разность между ожидаемыми и реальными координатами: x = 0 | y = 0 ---------------------------------------- Переместить мышь в координаты: x = 9 | y = 9 Координаты после перемещения: x = 9 | y = 9 Разность между ожидаемыми и реальными координатами: x = 0 | y = 0 ---------------------------------------- Переместить мышь в координаты: x = 16 | y = 16 Координаты после перемещения: x = 16 | y = 16 Разность между ожидаемыми и реальными координатами: x = 0 | y = 0 ---------------------------------------- Переместить мышь в координаты: x = 25 | y = 25 Координаты после перемещения: x = 25 | y = 25 Разность между ожидаемыми и реальными координатами: x = 0 | y = 0 ---------------------------------------- Переместить мышь в координаты: x = 36 | y = 36 Координаты после перемещения: x = 36 | y = 36 Разность между ожидаемыми и реальными координатами: x = 0 | y = 0 ---------------------------------------- Переместить мышь в координаты: x = 49 | y = 49 Координаты после перемещения: x = 49 | y = 49 Разность между ожидаемыми и реальными координатами: x = 0 | y = 0 ---------------------------------------- Переместить мышь в координаты: x = 64 | y = 64 Координаты после перемещения: x = 64 | y = 64 Разность между ожидаемыми и реальными координатами: x = 0 | y = 0 ---------------------------------------- Переместить мышь в координаты: x = 81 | y = 81 Координаты после перемещения: x = 81 | y = 81 Разность между ожидаемыми и реальными координатами: x = 0 | y = 0 ---------------------------------------- Переместить мышь в координаты: x = 100 | y = 100 Координаты после перемещения: x = 100 | y = 100 Разность между ожидаемыми и реальными координатами: x = 0 | y = 0 ----------------------------------------
Re: Координаты элемента
Если это решит проблему, добавьте пожалуйста.
Нужен вариант где будет работать не только методы $mouse но и все остальное тоже.
Или если можно, дайте инструкцию для каких методом нужна коррекция координат.
Почему send_move нормально отрабатывает при том же масштабе?
Разработка решений для автоматизации вашего бизнеса. Telegram: https://t.me/k90_7
Re: Координаты элемента
В 7.0.46 проблема не решена.
Очень неудобно тестировать скрипты когда программа не может переместить курсор в нужные координаты.
В режиме эмуляции событий, работает нормально.
Разработка решений для автоматизации вашего бизнеса. Telegram: https://t.me/k90_7
Re: Координаты элемента
Включите настройку перемещать реальный курсор, вслед за виртуальным для отладки
mouse->move_on_screen происходит без коррекции. Параметры добавим чуть позже.
mouse->move_on_screen происходит без коррекции. Параметры добавим чуть позже.