Вы правы, не существует единого подхода, подходящего для всех "под прикрытием" того, как WebDriver реализует различные части своего API, главным образом потому, что фактическая реализация может сильно отличаться в браузере и операционной системе. Ближайшие к вам страницы - это различные страницы в проекта wiki .
Чтобы ответить на ваш конкретный вопрос, удаленный сервер создает локальный экземпляр клиентского драйвера и использует его для поиска и щелчка элемента. Драйвер (InternetExplorerDriver, FirefoxDriver, ChromeDriver и т. Д.) Обычно использует JavaScript для поиска элемента и определения его размеров и местоположения на странице. При необходимости элемент прокручивается в поле зрения, и в окно браузера отправляется событие мыши на уровне ОС для имитации щелчка.
Тем не менее, это просто общий случай, и есть исключения. Например, некоторые браузеры могут находить элемент, используя средства, отличные от JavaScript атомов автоматизации . Аналогично, некоторые драйверы в некоторых операционных системах основаны на синтетических событиях, а не на уровне ОС, или так называемых «нативных» событиях. Важно помнить, что удаленный сервер создает тот же объект, что и вы, если бы вы вызывали драйвер локально, без использования удаленного сервера Selenium.