在Selenium上运行Firefox需要Geckodriver,因为Gecko引擎与JSON Wire协议并不真正兼容。因此,Geckodriver通过使用Marionette进行翻译,通过提供Selenium和浏览器之间的所有命令来运行HTTP服务器。 网站实际上可以说,目前的浏览器是由Marionette控制的吗?我已经看到你可以访问"木偶页"通过在配置中使用localhost和Marionette端口,当Firefox自动化时。此外,Firefox还显示了告诉用户的当前浏览器自动化的机器人。所以内置了某种自动化检测,但可以访问它吗?
编辑:是的,它是真的,不同的浏览器暴露不同的东西,但javascript检测不再工作。它能够检测到Selenium RC,因为它必须将一些Javascript代码注入浏览器。从Selenium 2.0开始,Webdriver直接与浏览器通信,因此简单的Javascript-Variable-Detection无法正常工作。我也发现并解释了一些暴露,但网站实际上可以以某种方式访问它们吗?另外一个暴露的区别是:Chrome将navigator.webdriver属性设置为true,但是firefox没有。