RemoteWebDriver:如何获取更新的配置文件

时间:2016-01-07 11:43:44

标签: java selenium selenium-webdriver remotewebdriver

有一种方法可以将本地配置文件传递给远程驱动程序:

    FirefoxProfile p = new FirefoxProfile();
    DesiredCapabilities capability = DesiredCapabilities.firefox();
    capability.setCapability(FirefoxDriver.PROFILE, p); 
    URL remote = null;
    try {
        remote = new URL("http://x.x.x.x:4444/wd/hub");
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }
    RemoteWebDriver driver = new RemoteWebDriver(remote, capability);

会话完成后,我会在x.x.x.x上看到类似“anonymous2926416537184265625webdriver-profile”的文件夹,其中包含带有新cookie,历史记录,LocalStorage等的更新个人资料。

有一个方法p.toJson(),但它返回本地配置文件。问题是如何在x.x.x.x上获取“anonymous2926416537184265625webdriver-profile”的内容?

1 个答案:

答案 0 :(得分:2)

一旦执行完成/ JVM存在,在Temp中创建的匿名文件夹通常不会有用。根据提供的文件here

" public java.io.File layoutOnDisk()

调用此选项可将当前配置文件写入磁盘。返回配置文件目录。请注意,此配置文件目录是临时目录,并且在JVM存在时将被删除(最迟)此方法应在开始使用配置文件之前立即调用,并且每个FirefoxDriver实例只应调用一次。

返回:     包含配置文件的目录。 "

如果您在执行时观察到临时文件夹,则会创建和删除几个匿名文件夹,最后只有一个文件夹。我们可能会得到类似下面的文件夹名称,但在存在时它会有不同的名称。

 System.out.println(profile.layoutOnDisk());

所有配置文件首选项都在prefs.js中更新,该首选项在该匿名文件夹中可用。它将包含提供的setPreference,在脚本中添加扩展以及其他默认的firefox配置文件首选项。由于我们已经在脚本中提供了所需的首选项,因此我希望不需要从此文件中获取数据。

也不建议从目录启动firefox配置文件。根据文件

" FirefoxProfile

public FirefoxProfile(java.io.File profileDir)

从现有的配置文件目录构造一个firefox配置文件。

需要此功能的用户应考虑使用已命名的个人资料。

参数:         profileDir - 用作模型的配置文件目录。"

不仅来自这个匿名文件夹,对我来说,它在保存的配置文件目录中没有按预期工作(通常在AppData \ Local \ Mozilla中)。我所有的方式都使用个人资料的名称,当然,我希望,大多数只会使用名称,而不是保存目录。

众所周知的driver.manage()。getCookies();将提供一套饼干,如果需要,我们可以获得。

谢谢你, 穆拉利