使用 addExtensions 选项时,Selenium 不会在 Firefox 中安装附加组件
Selenium does not install add-on in Firefox when using the addExtensions option
我想在 Firefox 中安装自定义 XPI 文件,当 运行 在 TypeScript 和 Jest 上下文中使用 selenium
和 geckodriver
时。
测试脚本的重要部分is this:
let driver: webdriver.WebDriver;
const firefoxExt = path.resolve(__dirname, '..', '..', 'extension', 'firefox.xpi');
const firefoxOptions = new firefox.Options().addExtensions(firefoxExt);
driver = new webdriver.Builder().forBrowser('firefox').setFirefoxOptions(firefoxOptions).build();
我期待 Firefox 启动并安装 firefox.xpi 作为附加组件,但打开的 Firefox 实例中没有附加组件。 XPI 本身没有问题,因为 XPI 可以作为临时扩展手动安装,没有问题。此外,XPI 存在于路径中,否则它会在 path.resolve
.
上出错
为了让其他人重现该问题,我创建了一个存储库,其中包含一个最小的、可重现的示例。请参阅此回购协议:https://github.com/slhck/web-extension-selenium-test
请注意,这不是以下内容的重复:
- Cannot load extension using firefox driver selenium when using AddExtension(未答复,已关闭)
- How to install extension permanently in geckodriver(我不想永久安装,因为 XPI 将在测试套件运行之前更改)
- How to load extension within chrome driver in selenium with python(我已经在使用
addExtension
)
我已经在 Selenium 本身中创建了一个 bug report,但它还没有收到任何 activity。
有谁知道可能是什么问题以及如何解决?
您可以使用 installAddon
。可能有更优雅的方法来做到这一点,但下面的代码有效:
beforeAll(async () => {
const firefoxExt = path.resolve(__dirname, '..', '..', 'extension', 'firefox.xpi');
driver = new webdriver.Builder().forBrowser('firefox').build();
new firefox.Driver(driver.getSession(), driver.getExecutor()).installAddon(firefoxExt, true);
});
我想在 Firefox 中安装自定义 XPI 文件,当 运行 在 TypeScript 和 Jest 上下文中使用 selenium
和 geckodriver
时。
测试脚本的重要部分is this:
let driver: webdriver.WebDriver;
const firefoxExt = path.resolve(__dirname, '..', '..', 'extension', 'firefox.xpi');
const firefoxOptions = new firefox.Options().addExtensions(firefoxExt);
driver = new webdriver.Builder().forBrowser('firefox').setFirefoxOptions(firefoxOptions).build();
我期待 Firefox 启动并安装 firefox.xpi 作为附加组件,但打开的 Firefox 实例中没有附加组件。 XPI 本身没有问题,因为 XPI 可以作为临时扩展手动安装,没有问题。此外,XPI 存在于路径中,否则它会在 path.resolve
.
为了让其他人重现该问题,我创建了一个存储库,其中包含一个最小的、可重现的示例。请参阅此回购协议:https://github.com/slhck/web-extension-selenium-test
请注意,这不是以下内容的重复:
- Cannot load extension using firefox driver selenium when using AddExtension(未答复,已关闭)
- How to install extension permanently in geckodriver(我不想永久安装,因为 XPI 将在测试套件运行之前更改)
- How to load extension within chrome driver in selenium with python(我已经在使用
addExtension
)
我已经在 Selenium 本身中创建了一个 bug report,但它还没有收到任何 activity。
有谁知道可能是什么问题以及如何解决?
您可以使用 installAddon
。可能有更优雅的方法来做到这一点,但下面的代码有效:
beforeAll(async () => {
const firefoxExt = path.resolve(__dirname, '..', '..', 'extension', 'firefox.xpi');
driver = new webdriver.Builder().forBrowser('firefox').build();
new firefox.Driver(driver.getSession(), driver.getExecutor()).installAddon(firefoxExt, true);
});