[使用addExtensions选项时,Selenium无法在Firefox中安装附加组件

问题描述 投票:0回答:1

[我想在TypeScript和Jest上下文中使用seleniumgeckodriver运行自定义XPI文件在Firefox中。

测试脚本的重要部分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

请注意,这不是重复的内容:

我想在TypeScript和Jest上下文中使用selenium和geckodriver运行它时,在Firefox中安装自定义XPI文件。测试脚本的重要部分是:let driver:webdriver ....

selenium selenium-webdriver firefox geckodriver
1个回答
0
投票

您可以使用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);
});
© www.soinside.com 2019 - 2024. All rights reserved.