Как сохранить файл HAR с помощью NetExport?
Я использую Visual Studio 2013 и C#, пытаясь понять, как это работает. Я хотел бы сохранить файл JSON и прочитать его, но это будет позже.
Файл HAR, который должен создать NetExport, никогда не сохраняется. Что я здесь не так делаю?
protected void Page_Load(object sender, EventArgs e)
{
FirefoxProfile profile = new FirefoxProfile();
profile.AddExtension("netExport-0.9b7.xpi");
profile.AddExtension("firebug-2.0.7-fx.xpi");
// profile.SetPreference("app.update.enabled", false);
string domain = "extensions.firebug.";
profile.SetPreference(domain + "currentVersion", "2.0.7");
profile.SetPreference(domain + "allPagesActivation", "on");
profile.SetPreference(domain + "defaultPanelName", "net");
profile.SetPreference(domain + "net.enableSites", true);
// Set default NetExport preferences
profile.SetPreference(domain + "netexport.alwaysEnableAutoExport", true);
profile.SetPreference(domain + "netexport.showPreview", false);
profile.SetPreference(domain + "netexport.defaultLogDir",
"C:\\Users\\MyName\\Desktop\\HAR\\");
IWebDriver driver = new FirefoxDriver(profile);
System.Threading.Thread.Sleep(5000);
driver.Navigate().GoToUrl("http://www.google.com/");
System.Threading.Thread.Sleep(5000);
driver.Quit();
}
1 ответ
У меня такая же проблема. Причина в том, что экспорт может занять некоторое время. Вместо того, чтобы ждать в течение определенного периода, поместите Sleep
в такой цикл (это Java, но вы можете легко перевести его на C#):
// Count files in output directory
final File harDir = new File(
profile.getStringPreference("devtools.netmonitor.har.defaultLogDir",
"C:\\Users\\MyName\\Desktop\\HAR\\") );
final int numFiles = harDir.listFiles().length;
// Load test page
driver.get("https://ixquick.com");
// Wait up to 3 min for new file in output directory
for (int c=0; c<180; c++) {
if (harDir.listFiles().length > numFiles) {
break;
}
Thread.sleep(1000L);
}