如何使用Selenium Webdriver引用Firefox扩展?

时间:2019-05-21 15:54:49

标签: ruby firefox selenium-webdriver

我有一个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)

如何将该功能添加到浏览器并以编程方式执行?

0 个答案:

没有答案