У меня есть расширение Firefox (просто переупакованный клон har-export-trigger , поскольку он не загружается), который я хочу добавить в свой браузер и использовать программно.
По какой-то причине обычный profile.add_extension(my_xpi_path)
не работает, поэтому я добавил его во все профили Firefox по умолчанию с 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)
Как я могу добавить эту функцию в свой браузер и выполнить ее программно?