Нужно отправлять нажатия клавиш на веб-страницу (игра html5)

Пытаюсь создать бота для экспериментов с ИИ для веб-страницы. Рассматриваемая веб-страница является игрой (HTML5).

Я хочу отправить клавиши (вверх, вниз, влево, вправо, пробел) на открытую извне веб-страницу для управления ботом в игре.

Я смотрел на механизацию, но мне кажется, что она создана для форм и прочего.

Кстати, я принимаю А.И. прямо сейчас, отсюда и любопытство. Любая помощь будет оценена по достоинству. Благодарю вас.


person Ryan    schedule 09.09.2013    source источник


Ответы (1)


В зависимости от того, как вы хотите подойти к этому, и предполагая, что вы работаете в Windows, руководство здесь предлагает вам просто использовать Библиотека изображений Python (для чтения с экрана), Numpy и PyWin (для фактического нажатия на игру). Эквивалентные пакеты для Win64 могут быть доступны здесь

Чтобы напрямую ответить на ваш вопрос:

import win32api, win32con

def leftClick():
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0)
    time.sleep(.1)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0)
    print "Click."          #completely optional. But nice for debugging purposes.

Selenium также предлагает что-то похожее на Mechanize в том смысле, что вы получаете контроль над браузером, хотя это должно быть запущенный самим Selenium, он не может просто подключиться к текущему процессу. Вы можете отправить событие клика непосредственно в элемент HTML, что может быть именно тем, что вам здесь нужно.

person TankorSmash    schedule 09.09.2013