[我想在TypeScript和Jest上下文中使用selenium
和geckodriver
运行自定义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
请注意,这不是重复的内容:
addExtension
)] >>我已经在Selenium中创建了一个bug report,但是它尚未收到任何活动。
有人知道这个问题可能是什么,如何解决?
我想在TypeScript和Jest上下文中使用selenium和geckodriver运行它时,在Firefox中安装自定义XPI文件。测试脚本的重要部分是:let driver:webdriver ....
您可以使用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);
});