Я работаю над фреймворком автоматизации браузера, одним из основных принципов которого является взаимодействие с браузером настолько близко, насколько это возможно пользователю, без необходимости фокусировки окна браузера.Чтобы смоделировать нажатие, зависание и перетаскивание элементов, мне нужно выполнить эти события, используя механизмы на уровне собственной ОС, а не смоделированные события JavaScript.С этой целью я ищу лучший способ заставить IE правильно реагировать на симулированные события мыши.
Использование методов JavaScript или COM для симуляции ввода мыши проблематично, так как они могут блокироваться, если, например,, появляется предупреждение JavaScript () или диалоговое окно выбора файла.
Использование API SendMessage ненадежно. Это сообщение в блоге Раймонда Чена говорит о вводе с клавиатуры, но в равной степени применимо и к вводу с помощью мыши.Сначала может показаться, что использование SendMessage (или PostMessage ) работает, но такие вещи, как наведение на элементы, не будут работать дольше доли секунды.
SendInput API предназначен для имитации чистого ввода в очереди ввода событий мыши и клавиатуры, но делает это на очень низком уровне .Таким образом, для получения ввода от мыши требуется, чтобы окно IE имело фокус.
Существует ли надежный способ имитировать ввод мыши в IE с использованием событий на уровне ОС, не требуя, чтобы окно имело фокус?Если ответ действительно так: «Нет, нет способа выполнить то, что вы хотите», я был бы признателен за указатель на авторитетный источник, описывающий, почему это так для IE.