Selenium WebDriver,您可以使用具有相同历史记录,扩展名和Cookie的Firefox驱动程序作为标准浏览器吗?

时间:2015-08-24 07:28:52

标签: selenium-webdriver

string path = @"C:\Users\user\AppData\Roaming\Mozilla\Firefox\Profiles\l4h42jo7.Develop";
if (Directory.Exists(path))
{
    FirefoxProfile profile = new FirefoxProfile(path,false);
    webDriver = new FirefoxDriver(profile);
}

我有两个问题:

  1. 我想像普通的Firefox浏览器一样打开Firefox驱动程序,具有相同的扩展名,历史记录和Cookie。我所包含的代码只与普通浏览器共享扩展名。
  2. 我的理解文档没有清楚地解释Firefox配置文件参数“deleteSourceOnClean”,并且在指定时我不知道它是否有效。它做了什么以及如何判断它是否有效?

2 个答案:

答案 0 :(得分:0)

  • 当您打开Firefox时, Selenium Web-driver 会以匿名方式打开它 轮廓。
  • 我们可以轻松打开当前(默认)Firefox个人资料或我们 可以很容易地使用Selenium Web驱动程序创建一个新的用途。
  • 要获取系统上的Firefox配置文件列表,您可以在下面使用 链接。
  • 非常一般的位置是%appdata%\漫游\ Mozilla \ Firefox \ Profiles 建议使用链接了解有关Firefox配置文件的更多信息。 create a new Firefox profilePath of Firefox profiles

所以来到你的问题,下面的代码将很容易使用你创建的个人资料。

 ProfilesIni profile = new ProfilesIni();
 FirefoxProfile ffprofile = profile.getProfile("SELENIUM");
 WebDriver driver = new FirefoxDriver(ffprofile);

注意: SELENIUM是我在上面代码中使用的个人资料。

答案 1 :(得分:0)

如果您使用的是Windows操作系统,

首先确定您想要的“个人资料”。例如,您想使用firefox的'deafult'配置文件,然后将其从%APPDATA%\ Mozilla \ Firefox \ Profile \ xxxx.default复制到D:\ default。然后代码

DesiredCapabilities capabilities = DesiredCapabilities.firefox();
File path = new File("D:\\default");
FirefoxProfile ffp =  new FirefoxProfile(path);
capabilities.setCapability(FirefoxDriver.PROFILE, ffp);
WebDriver driver = new RemoteWebDriver(new URL("xxx"), capabilities)//or FirefoxDriver. I ignored url for RemoteWebdriver here.

使用默认配置文件后,所有会话都将共享扩展程序,Cookie等。对于你的第二个问题,很抱歉我不知道。顺便说一句,如果你想在你的会话中加载一个现有的个人资料(特别是一个大的个人资料),请为你的jvm设置一个更大的堆,这样就不会有任何OutofMemory异常。