Home > database >  unable to find YouTube class
unable to find YouTube class

Time:12-26

I'm trying to make an extension witch I am new to. I have got some of the basics going like the manifest file and the script to interact with YouTube. My problem is that I am unable to find the class yt-simple-endpoint style-scope ytd-mini-guide-entry-renderer

Here is the manifest

{
"content_scripts": 
[{
    "matches": ["https://www.youtube.com/*"],
    "all_frames" : true,
    "js": ["remove_html.js"],
    "run_at": "document_end"
}],

  "manifest_version": 3,
  "name": "rsy",
  "version": "2.2",
  "description": "Youtube",
  "icons": {"128": "img.png"} 
}

Here is my script

const content = document.querySelectorAll('yt-simple-endpoint style-scope ytd-mini-guide-entry-renderer')
console.log(content.length)

have also tried this

const content = document.getElementsByClassName('yt-simple-endpoint style-scope ytd-mini-guide-entry-renderer')
console.log(content.length)

The console is outputting 0 for both.

I have looked at some other posts and there are some mentions of drivers, how would that help?

CodePudding user response:

Use MutationObserver as that element is generated dynamically.

manifest.json

{
  "name": "content_scripts",
  "version": "1.0",
  "manifest_version": 3,
  "content_scripts": [
    {
      "js": [
        "matches.js"
      ],
      "matches": [
        "<all_urls>"
      ],
      "run_at": "document_start"
    }
  ]
}

matches.js

console.log("MutationObserver:Start");

const onMutation = (mutations) => {
  mo.disconnect();

  for (const { addedNodes } of mutations) {
    for (const node of addedNodes) {
      if (node.id != null) {
        if (node.className == "yt-simple-endpoint style-scope ytd-mini-guide-entry-renderer") {
          console.dir(node.className)
        }
      }
    }
  }

  observe();
}

const observe = () => {
  mo.observe(document, {
    subtree: true,
    childList: true,
  });
}

const mo = new MutationObserver(onMutation);

observe();

enter image description here

CodePudding user response:

enter image description here

I was able to get the content for the className mentioned in the question!

  • Related