Skip to content

Youtube embedded iframe saved empty when use SingleFIle from Selenium #1699

@Cosmologist

Description

@Cosmologist

Hi!
From extension all works perfectly.

My Java-wrapper around SingleFile and Selenium:

public class SingleFile {
    public SingleFileConfiguration configuration;

    private String getScript(String name) throws IOException {
        File script = new File(name);
        if (!script.exists()) {
            FileUtils.copyURLToFile(new URL("https://raw.githubusercontent.com/gildas-lormeau/SingleFile/refs/heads/master/lib/" + name), script);
        }

        return FileUtils.readFileToString(script);
    }

    public String getSingleFileCallJs() {
        return "let result = await singlefile.getPageData(" + this.configuration.toJson() + "); "
                + "return result.content;";
    }

    public void boostrap(SeleniumAbstract selenium) throws IOException {
        HasCdp cdp = (HasCdp) selenium.getDriver();
        Map map = new HashMap<String, String>();
        map.put("source", "console.log('[SingleFile] ' + document.location.href);"
                + this.getScript("single-file-bootstrap.js")
                + this.getScript("single-file-hooks-frames.js")
                + this.getScript("single-file-frames.js")
        );
        cdp.executeCdpCommand("Page.addScriptToEvaluateOnNewDocument", map);
    }

    public void save(SeleniumAbstract selenium, File toFile) throws IOException, InterruptedException {
        JavascriptExecutor jse = (JavascriptExecutor) selenium.getDriver();
        jse.executeScript(this.getScript("single-file.js"));

        String result = (String) jse.executeScript(this.getSingleFileCallJs());

        FileUtils.writeStringToFile(toFile, result);
    }
}
And configuration (get it from extension configuration)
public class SingleFileConfiguration {
    public String toJson() {
        return """
                {
                	"addProof": false,
                	"allowedBookmarkFolders": [],
                	"applySystemTheme": true,
                	"autoClose": false,
                	"autoOpenEditor": false,
                	"autoSaveDelay": 1,
                	"autoSaveDiscard": false,
                	"autoSaveExternalSave": false,
                	"autoSaveLoad": false,
                	"autoSaveLoadOrUnload": true,
                	"autoSaveRemove": false,
                	"autoSaveRepeat": false,
                	"autoSaveRepeatDelay": 10,
                	"autoSaveUnload": false,
                	"backgroundSave": true,
                	"blockAlternativeImages": true,
                	"blockAudios": true,
                	"blockFonts": false,
                	"blockImages": false,
                	"blockMixedContent": false,
                	"blockScripts": true,
                	"blockStylesheets": false,
                	"blockVideos": false,
                	"browserActionMenuEnabled": true,
                	"compressCSS": false,
                	"compressContent": false,
                	"compressHTML": true,
                	"confirmFilename": false,
                	"confirmInfobarContent": false,
                	"contextMenuEnabled": true,
                	"createRootDirectory": false,
                	"defaultEditorMode": "normal",
                	"delayBeforeProcessing": 0,
                	"displayInfobar": true,
                	"displayInfobarInEditor": false,
                	"displayStats": false,
                	"extractDataFromPage": true,
                	"forceWebAuthFlow": false,
                	"groupDuplicateImages": true,
                	"groupDuplicateStylesheets": false,
                	"ignoredBookmarkFolders": [],
                	"includeBOM": false,
                	"includeInfobar": false,
                	"infobarPositionAbsolute": false,
                	"infobarPositionBottom": "",
                	"infobarPositionLeft": "",
                	"infobarPositionRight": "16px",
                	"infobarPositionTop": "16px",
                	"infobarTemplate": "",
                	"insertEmbeddedImage": false,
                	"insertEmbeddedScreenshotImage": false,
                	"insertMetaCSP": true,
                	"insertMetaNoIndex": false,
                	"insertSingleFileComment": true,
                	"insertTextBody": false,
                	"loadDeferredImages": true,
                	"loadDeferredImagesBeforeFrames": false,
                	"loadDeferredImagesBlockCookies": false,
                	"loadDeferredImagesBlockStorage": false,
                	"loadDeferredImagesDispatchScrollEvent": false,
                	"loadDeferredImagesKeepZoomLevel": false,
                	"loadDeferredImagesMaxIdleTime": 1500,
                	"logsEnabled": true,
                	"maxResourceSize": 10,
                	"maxResourceSizeEnabled": false,
                	"maxSizeDuplicateImages": 524288,
                	"moveStylesInHead": false,
                	"networkTimeout": 0,
                	"openEditor": false,
                	"openInfobar": false,
                	"openSavedPage": false,
                	"passReferrerOnError": false,
                	"password": "",
                	"preventAppendedData": false,
                	"progressBarEnabled": true,
                	"removeAlternativeFonts": true,
                	"removeAlternativeImages": true,
                	"removeAlternativeMedias": true,
                	"removeFrames": false,
                	"removeHiddenElements": true,
                	"removeSavedDate": false,
                	"removeUnusedFonts": true,
                	"removeUnusedStyles": true,
                	"replaceBookmarkURL": true,
                	"replaceEmojisInFilename": false,
                	"resolveFragmentIdentifierURLs": false,
                	"resolveLinks": true,
                	"saveCreatedBookmarks": false,
                	"saveFavicon": true,
                	"saveFilenameTemplateData": false,
                	"saveOriginalURLs": false,
                	"saveRawPage": false,
                	"saveToClipboard": false,
                	"saveToDropbox": false,
                	"saveToGDrive": false,
                	"saveToGitHub": false,
                	"saveToRestFormApi": false,
                	"saveToRestFormApiFileFieldName": "",
                	"saveToRestFormApiToken": "",
                	"saveToRestFormApiUrl": "",
                	"saveToRestFormApiUrlFieldName": "",
                	"saveToS3": false,
                	"saveWithCompanion": false,
                	"saveWithWebDAV": false,
                	"selfExtractingArchive": true,
                	"shadowEnabled": true,
                	"sharePage": false,
                	"tabMenuEnabled": true,
                	"userScriptEnabled": false,
                	"warnUnsavedPage": true,
                	"woleetKey": ""
                }""";
    }
}

Run it:

this.singleFile.boostrap(this.selenium);
this.selenium.driver.get("https://habr.com/ru/companies/ruvds/articles/848526/");
this.singleFile.save(selenium, pageLocal);

Please, help!

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions