To run Firefox using Selenium, the Geckodriver is necessary due to compatibility issues with the JSON Wire Protocol and the Gecko Engine. The Geckodriver acts as an intermediary between Selenium and the browser by serving commands and translating them with Marionette via an HTTP Server. Can a website detect if the current browser is being controlled by Marionette? I have noticed that accessing a "Marionette Page" is possible by using localhost and the Marionette Port in configuration settings when automating Firefox. Additionally, Firefox displays a robot icon indicating automation. While there seems to be built-in automation detection, can it be accessed externally?
Update: It is correct that different browsers reveal various attributes, but traditional JavaScript detection methods are no longer effective. Previously, Selenium RC could be detected through injecting JavaScript code into the browser. However, with the shift to WebDriver in Selenium 2.0, direct communication with the browser has eliminated simple JavaScript variable detection. Although some browser attributes can be exposed, such as Chrome setting navigator.webdriver to true while Firefox does not, the question remains whether websites can access this information.