服务器可以区分Chrome Webdriver和实际的Chrome吗?

时间:2016-08-22 21:20:29

标签: google-chrome selenium-webdriver

据我所知,服务器无法判断是通过Chrome网络驱动程序还是Chrome实际用户访问它。这是对的吗?

1 个答案:

答案 0 :(得分:0)

如果没有在服务器端进行特定检查,我怀疑它是否可以被检测到。 但是,它可以实施。我正在考虑的一种方法是检查浏览器首选项。

让我们以新的Selenium驱动程序为例,该驱动程序用于Firefox版本48+,基于Marionette的geckodriver。 Mozilla取得了驱动程序服务器的所有权并引用了Github project page

  

使用W3C WebDriver兼容客户端进行交互的代理   基于Gecko的浏览器。

     

此程序提供WebDriver协议描述的HTTP API   与Gecko浏览器进行通信,例如Firefox。它翻译   通过充当代理来调用Marionette自动化协议   在本地和远端之间。

为实现这一目标,Mozilla在浏览器中实现了一些内置的WebDriver扩展。

如果您在Firefox中转到about:config并搜索webdriver,您会看到一些偏好设置,当Selenium驱动程序启动浏览器时,它们显示为user设置。所以这是检查它的一种方式。

另一个与第一个相关的是Selenium WebDriver在启动具有一种可区分名称的浏览器时创建的Firefox配置文件。但需要注意的是,这只是使用默认的Selenium设置。如果您作为用户创建一个Firefox配置文件,然后在初始化之前在Selenium WebDriver中导入,除了提到的第一点之外,将没有任何区别。用户首选项设置。

同样,这适用于所有Selenium浏览器驱动程序,因此它在某种程度上也适用于Chrome。但是,很抱歉,我不能像Firefox的情况那样具体。