gpt4 book ai didi

python - 如何从 Selenium 脚本获取 Firefox Web Extension 的 "Internal UUID"?

转载 作者:行者123 更新时间:2023-11-30 21:55:42 24 4
gpt4 key购买 nike

我需要打开moz-extension://internal-uuid我的 Selenium 脚本启动后的页面可以访问扩展的 storage API ,在那里设置一些首选项,该扩展稍后将读取这些首选项并用于执行某些操作。但是当我使用selenium.webdriver.Firefox.add_addon(...)时它返回 Extension ID有所不同,不能用于打开 moz-extension://页。有什么办法可以得到这个Internal UUID从我的代码(不是通过检查 about:debugging#addons 手动)。或者可能是某种将我需要的数据从 Selenium 传递到 Web 扩展的方法?

最佳答案

此代码在 Linux 和 Mac 上适用于我:

    public static void main(String[] args) throws IOException {


FirefoxOptions options = new FirefoxOptions();

FirefoxDriver driver = new FirefoxDriver(options);

String userPrefsFileContent = readFile(driver.getCapabilities().getCapability("moz:profile") + "/prefs.js");

String extensionUuid = getExtensionUuid(userPrefsFileContent);

driver.quit();

}

private static String getExtensionUuid(String userPrefsFileContent) {

String uuid = null;

String[] usersPrefsList = userPrefsFileContent.split(";");

for (String currentPref : usersPrefsList) {

if (currentPref.contains("extensions.webextensions.uuids")) {
uuid = currentPref.split(":")[1].replaceAll("\"", "").replace("}", "")
.replace(")", "").replace("\\", "");
}

}

if(uuid.contains(",")) {
uuid = uuid.split(",")[0];
}

return uuid;

}

private static String readFile(String pathname) throws IOException {

File file = new File(pathname);
StringBuilder fileContents = new StringBuilder((int) file.length());
String lineSeparator = System.getProperty("line.separator");

try (Scanner scanner = new Scanner(file)) {
while (scanner.hasNextLine()) {
fileContents.append(scanner.nextLine()).append(lineSeparator);
}
}
return fileContents.toString();
}

关于python - 如何从 Selenium 脚本获取 Firefox Web Extension 的 "Internal UUID"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56288424/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com