配置Selenium以私人模式驱动Safari

时间:2015-05-20 12:56:04

标签: javascript ruby selenium safari incognito-mode

如何配置Selenium以私人模式启动Safari? (我正在使用Ruby界面。)

对于上下文,这就是为什么在Safari的私有模式下运行测试很重要:尝试写入本地存储将在Safari的私有模式中引发错误。因此,我希望自动化测试验证我的代码在私有模式下避免写入本地存储。 (而且,或许更重要的是,它会将未来的错误引起开发人员的注意

1 个答案:

答案 0 :(得分:3)

让我们看一下私人浏览的定义: https://support.apple.com/kb/PH19216?locale=en_US

  

当您使用私人浏览窗口时,Safari不会保存您的浏览历史记录,并且会要求您访问的网站不会跟踪您。

在这里:http://en.wikipedia.org/wiki/Privacy_mode

  

隐私模式或“隐私浏览”或“隐身模式”[1]是某些网络浏览器中的隐私功能,用于禁用浏览历史记录和网络缓存。这允许人们浏览Web而不存储可以在以后检索的本地数据。隐私模式还将禁用Cookie和Flash Cookie中的数据存储。此隐私保护仅适用于本地计算设备,因为仍可通过关联Web服务器上的IP地址来识别常用网站。

所以这意味着Selenium相当于打开私人浏览。每次通过Selenium启动任何驱动程序时,它都会创建一个全新的匿名配置文件,您实际上是在私下浏览。 (如果你没有使用已经创建的safari简介)

BUT!如果你仍然认为你需要在隐身模式下运行safari,你可以使用以下hack:

您可以使用AppleScript自动启用“私人浏览”选项。像这样。

  1. 首先,启动Universal Access系统首选项并启用“启用辅助设备访问”选项。

  2. 启动脚本编辑器(在Applications文件夹内的AppleScript文件夹中)并输入以下脚本:

  3. tell application "Safari"
      activate
    end tell
    
    tell application "System Events"
      tell process "Safari"
          tell menu bar 1
              tell menu bar item "Safari"
                  tell menu "Safari"
                      click menu item "Private Browsing"
                  end tell
              end tell
          end tell
      end tell
    end tell
    

    来自此处的信息:http://www.macworld.com/article/1139714/enableprivatebrowsing.html