我有一个Firefox扩展(只是重新打包的har-export-trigger克隆,因为它不会下载),我想将其添加到浏览器中并以编程方式使用。
无论出于何种原因,通常的profile.add_extension(my_xpi_path)
都不起作用,因此,我将其与Firefox profiles by default一起添加到了所有distribution/policies.json
中。
这可以手动进行,因为我可以打开浏览器,打开开发工具控制台并访问所需的HAR功能。
如果我使用Selenium Webdriver尝试此操作,请参考我的配置文件,该扩展程序已加载,但无法访问。
require 'webdrivers'
require 'selenium-webdriver'
Selenium::WebDriver.logger.level = :debug
profile = Selenium::WebDriver::Firefox::Profile.from_name "default"
driver = Selenium::WebDriver.for(:firefox, profile: profile)
script = <<-SCRIPT
HAR.triggerExport().then(harLog => {
console.log(harLog);
});
HAR.addRequestListener(harEntry => {
console.log("Request finished", request);
});
SCRIPT
driver.get "https://google.com"
driver.execute_script(script)
产生Selenium::WebDriver::Error::JavascriptError (ReferenceError: HAR is not defined)
如何将该功能添加到浏览器并以编程方式执行?