是否可以将两个不同的Firefox配置文件实例跟踪到同一台计算机?

时间:2018-11-15 02:11:28

标签: selenium firefox selenium-webdriver user-agent firefox-profile

我正在使用Selenium和firefox运行一些无头测试,以登录某些网站。如果我在同一浏览器中的不同的Firefox配置文件之间切换以登录网站上的独立帐户,除了IP跟踪之外,还有什么方法可以跟踪我的连接并找出全部在同一台计算机上(运行Selenium脚本的计算机)吗? / p>

我在做什么:

profile = webdriver.FirefoxProfile('path/to/profile1')
driver = webdriver.Firefox(profile)
driver.get("website.com")
#connect as user1 on website & do stuff...
driver.quit()

profile = webdriver.FirefoxProfile('path/to/profile2')
driver = webdriver.Firefox(profile)
driver.get("website.com")
#connect as user2 on website & do stuff...
driver.quit()

编辑:换句话说,给定上面的代码(不包括IP跟踪),website.com能否确定帐户user1和user2实际上在同一台计算机上(因此一个人有2个帐户)?

1 个答案:

答案 0 :(得分:0)

Multiple Firefox profiles

Firefox中的配置文件是用户已经制作或安装到其Firefox副本中的设置,自定义项,加载项和其他个性化设置的集合。

有多个配置文件的原因

临时用户可能希望为不同的家庭成员拥有不同的个人资料。具有不同的个人资料将允许每个人拥有自己的书签,设置和附加组件集。

Web开发人员可能希望使用辅助配置文件来测试不同Firefox通道上的网站,应用程序或其他项目。例如,您可能希望安装一些用于Web开发的扩展程序,而不是用于通用Web浏览的扩展程序。

对于QA,测试和错误分类贡献者,您可能需要安装Firefox的多个开发版本,每个版本都有自己的配置文件。创建用于测试的新配置文件可以使您避免丢失首选项书签历史记录。只需花费很少的时间即可设置新的配置文件,完成后,您的所有Firefox版本都会分别更新并可以同时运行。

打破神话

因此具有多个 Firefox配置文件 Firefox浏览器客户端的多个实例可以同时运行。因此,您对的假设...如果我在同一浏览器中的不同firefox配置文件之间切换以登录到独立帐户... ,这是不正确的。 Web浏览客户端变体可能相同,即 Firefox ,但是它们每个都将继承不同的首选项书签以及历史


User Agent

您的用户代理告诉您访问的每个站点您正在使用的浏览器。网站可以检测到您的UA,并根据需要重定向到浏览器的更合适页面。换句话说,如果您通过手机到此站点进行了适当的检测,则该站点可能会通过UA检测到您是移动用户,并将您重定向到他们的移动站点(如果有)。由于并非所有站点都具有UA检测功能,因此这不适用于所有站点。

UA还会告知网站您正在访问的浏览器相关软件可能已经安装。例如,此UA:

(Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB6; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.2; .NET CLR 3.5.21022; .NET CLR 1.1.4322; .NET CLR 3.5.30729; OfficeLiveConnector.1.3; OfficeLivePatch.0.0;) 

告诉我们该访客正在使用Internet Explorer 8,Windows Vista,已安装Media Center PC 5.0,Office Live Connector等。因此,如果我们有一个针对Vista用户的特殊部分,我们可以基于Windows重定向此人NT 6.0字符串仅属于我们网站中与Vista有关的子部分。另一方面,此用户代理:

Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 

告诉我们访客正在使用FireFox 3.5.3和Windows Vista。没什么。

具有以上知识的用户代理欺骗已被许多不想让人们知道如何到达站点的程序员使用。一些程序员会找到合法的UA,并对其脚本进行编程以使用此类UA。 UA可以为空白,也可以包含自定义信息,例如指向可能会推广特定浏览器或脚本的网站的URL。


更新

根据您的问题更新 ...网站能否查明user1和user2帐户实际上在同一台计算机上... 我不确定 User Agent < / em>带有浏览器配置文件信息。但是,根据不同的用户代理,可以提取不同的参数。例如,对于 user-agent字符串,例如:

Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36

不同的 User-Agent 检测库认为如下:

  • 根据useragent v2.1.9:

    • ua

      rawUa: Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36
      string:
      family: Chrome
      major: 70
      minor: 0
      patch: 3538
      device: Other 0.0.0
      
    • 操作系统

      string: Windows 8 0.0.0
      family: Windows 8
      major: 0
      minor: 0
      patch: 0
      
  • 根据ua-parser-js v0.7.11:

    • ua

      ua: Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36
      
    • 浏览器

      name: Chrome
      version: 70.0.3538.102
      major: 70
      
    • 引擎

      name: WebKit
      version: 537.36
      
    • 操作系统

      name: Windows
      version: 8
      
    • 设备

      model: undefined
      vendor: undefined
      type: undefined
      
    • cpu

      architecture: amd64
      
  • 根据platform.js v1.3.3:

    • ua

      name: Chrome
      version: 70.0.3538.102
      layout: Blink
      
    • 操作系统

      os: Windows 8 64-bit
      
    • 设备

      product:
      manufacturer:
      description: Chrome 70.0.3538.102 on Windows 8 64-bit