我们如何使用FirefoxProfile保留旧的浏览器会话?

时间:2015-10-11 06:42:51

标签: java selenium selenium-webdriver webdriver

我在接受采访时被问到一个问题: 您正在开展会议,并且有一些针对初次使用者的问卷。但是当用户关闭浏览器并重新打开它时,问卷不得出现(因为他现在不是第一次使用)。我不得不告诉如何使用TestNG框架(使用Java)在Selenium中自动化这种情况。所以基本上他想关闭/退出当前的驱动程序,并希望使用另一个驱动程序重新打开页面,并确保新会话记住用户之前已访问过(就像手动完成一样)。

我的回答是将cookie添加到新的驱动程序会话中。但他不想这样做。他想完全像用户那样进行测试。 他给了我一个关于使用FirefoxProfile来保留我们正在处理的配置文件的提示。

FirefoxProfile的用途是什么?我们如何在当前场景中使用它。如果您能提供为此编写的代码,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

因此,这取决于该特定网站如何确定您是否已回答问卷。由于你没有在问题中给出任何解释,我将假设它按照大多数人的方式完成 - 即使用cookie。

如果这个假设是正确的,那么你建议使用cookie是最好的建议,而你的采访者使用FF简介的陈述根本没有意义。我的意思是,我甚至不确定你能用FF配置文件做这样的事情,无论如何,当浏览器被触发时注入一个cookie(或使用代理注入)绝对是一种方法。您的面试官可能会或可能不会对网络的运作方式有一些扭曲的知识。所以:

  

他想要像用户一样进行测试。

在面试官心目中这会是什么样子 - “一个恶作剧用户在网络上琢磨,在可接受时关闭他的会话,然后重新开始安装浏览器,但在同一时间总是秘密注入一个cookie,所以他没有收到调查问卷?“......我在这个问题上并不是真正的认证专家,我没有科学数据来证明这一点,但我几乎不认为这是我的用户所做的事情。所以用户真正做的是。 。 没有。浏览器会记住cookie,因此可以让webapp了解该用户是否已经访问过您。所以,我再说一遍,注入那个饼干就是你应该做的。即使有可能使用FF配置文件注入cookie或smth - 只是拒绝这样做并使用WebDriver对象,因为使用配置文件进行此类任务只是没有意义(启动FF时会创建新的FF配置文件)声明:

  

“丢失/退出当前的驱动程序,并希望使用其他驱动程序   重新打开页面并确保新会话记住用户之前已访问过(就像手动完成一样)。   “

:启动新的WebDriver实例并单击“以用户身份打开firefox按钮”并不是一回事。如果你不相信我,请咨询文档。调用new FirefoxDriver()会导致系统使用新的匿名配置文件加载新的FF,而“正常的FF安装”会使用所有缓存和其他内容存在于硬盘中。

所以有时候在采访中他们故意给你一些没有意义的问题,试图解决这些问题会伤害你的家人以及我和整个人类 - 例如“写一个正则表达式解析HTML”。在这些情况下,你只需要说:“那不是我们怎么做的,让我们继续下一个问题”。那就是我认为你应该做的事情。祝你好运。