Как ссылаться на расширение Firefox с помощью Selenium Webdriver? - PullRequest
0 голосов
/ 21 мая 2019

У меня есть расширение 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)

Как я могу добавить эту функцию в свой браузер и выполнить ее программно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...