Автоматизировать существующий сеанс веб-браузера - PullRequest
0 голосов
/ 12 сентября 2018

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

Это должно быть возможно, по крайней мере, через IAccessible2 для основных браузеров, но я не нашел указателей. Иными словами, как программы чтения с экрана делают это? И бонусный вопрос, есть ли для него библиотека Python?

РЕДАКТИРОВАТЬ: Я ищу нечто большее, чем симуляция пользовательского ввода. Я хотел бы программно прочитать DOM, по крайней мере, написать, если это возможно. До сих пор я смотрел на код в NVDA , который очень низкоуровневый и сложный. Есть ли что-нибудь проще?

1 Ответ

0 голосов
/ 09 октября 2018

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

Ответ - макросы клавиатуры / мыши, если вам нужно визуально увидетьбраузер, как это бывает.Вы можете запускать макропрограммы Google для своей ОС.

Но вы, скорее всего, ищете безголовый браузер, такой как PhantomJS, HtmlUnit, TrifleJS, Splash и SimpleBrowser

Выезд - https://saucelabs.com/blog/headless-browser-testing-101

Когда вы упоминаете «взаимодействовать с существующей веб-страницей в веб-браузере, запущенном стандартным способом», вы говорите о DOM (объектная модель документа).

Во многих средах QA выполняются сценарии тестирования кода, который не был отображен браузером в DOM (вы видите DOM при просмотре страницы с помощью инструментов браузера).Когда вы используете безголовый браузер, он создает DOM, а затем запускает все тесты, как будто человек щелкает, без необходимости визуально смотреть на это.

см. - https://css -tricks.com /dom /

Другими словами, как программы чтения с экрана делают это?И бонусный вопрос, есть ли для него библиотека Python?

Программы чтения с экрана взаимодействуют с DOM на низком уровне.Я не знаю, есть ли библиотека Python.Скорее всего, это будет излишним, хотя, если вы не создаете настольное приложение, которое взаимодействует с браузерами, как это делает программа чтения с экрана.

edit ...

Я сделал еще несколькокопая и обнаружив эту статью , это гораздо более подробное объяснение того, как программы чтения с экрана взаимодействуют с браузером / домом.

Также есть Python API для управления DOM, и эта библиотека показалась популярной.

...