Страница 1 из 1

Как сделать активный фокус нескольким одновременно запущенным экземплярам Human Emulator?

Добавлено: 18 фев 2021, 19:56
leo
Доброго времени суток!
Сайты могут определять находится ли окно браузера в фокусе или нет.
Соответственно, когда запускаю несколько экземпляров Human Emulator активный фокус остается только у последнего.
Остальные окна human emulator не в фокусе и сайт может определить, что взаимодействие с сайтом происходит, а фокуса то нет.
Проверить активный фокус окна можно как минимум 2мя способами:
1) вызов document.hasFocus()
2) перехват событий onfocus, onblur
Пример можно увидеть тут: https://www.plus2net.com/javascript_tut ... r-demo.php
Понятно, что наверное можно на уровне javascript подменить результат вывода document.hasFocus(), и можно перехватить событие onblur, но такую подмену сайт тоже может детектировать.
Хотелось бы, чтобы каждое окно Human Emulator думало, что оно в фокусе.
Можно ли это сделать?
Заранее спасибо!

Re: Как сделать активный фокус нескольким одновременно запущенным экземплярам Human Emulator?

Добавлено: 18 фев 2021, 21:37
bigfozzy
А вы попробуйте - фокус всегда есть :
while (true)
{
	echo $browser->run_java_script("document.hasFocus()");
	sleep(1);
}

Re: Как сделать активный фокус нескольким одновременно запущенным экземплярам Human Emulator?

Добавлено: 18 фев 2021, 21:41
bigfozzy
с вашим примером:
$browser->navigate("https://www.plus2net.com/javascript_tut ... r-demo.php");
$mouse->send_click(2,2);
while (true)
{
	echo $browser->run_java_script("document.hasFocus()");
	sleep(1);
	echo $span->get_by_id("my_msg", false)->get_inner_text();
}

Re: Как сделать активный фокус нескольким одновременно запущенным экземплярам Human Emulator?

Добавлено: 19 фев 2021, 20:24
leo
Спасибо за быстрый ответ!
Попробовал ваш скрипт. Запустил. Отдельно вызвал cmd.exe и расположил поверх окна Human Emulator.
Текст изменился на оранжевый "This document is NOT in Focus" и в debug панели появились соответствующие строки.

Изображение

Re: Как сделать активный фокус нескольким одновременно запущенным экземплярам Human Emulator?

Добавлено: 20 фев 2021, 00:14
bigfozzy
Спасибо, Обновите и попробуйте запустить этот скрипт для Chromium Offscreen.
Остальные модели сделаем чуть позже.

Re: Как сделать активный фокус нескольким одновременно запущенным экземплярам Human Emulator?

Добавлено: 21 фев 2021, 20:56
leo
bigfozzy писал(а):
20 фев 2021, 00:14
Спасибо, Обновите и попробуйте запустить этот скрипт для Chromium Offscreen.
Спасибо, в Offscreen работает!
bigfozzy писал(а):
20 фев 2021, 00:14
Остальные модели сделаем чуть позже.
Спасибо!!!