Research
Security News
Threat Actor Exposes Playbook for Exploiting npm to Build Blockchain-Powered Botnets
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
puppeteer-element2selector
Advanced tools
A utility to convert puppeteer ElementHandle to CSS Selector.
A utility to convert puppeteer ElementHandle to CSS Selector.
This library uses antonmedv/finder to turn ElementHandle into a unique CSS Selector. Allows developers to easily identify elements.
$ npm install puppeteer-element2selector
Below is a minimal sample code.
import puppeteer from 'puppeteer';
import { element2selector } from 'puppeteer-element2selector';
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://google.com');
const element = await page.$('input');
const selector = await element2selector(element!);
console.log(`Result: ${selector}`); // Result: #tophf > input:nth-child(1)
element2selector(element: ElementHandle, options?: Options): string
element
<ElementHandle>options
<Object>
seedMinLength
<number> Minimum length of levels in fining selector. Starts from 1
. For more robust selectors give this param value around 4-5 depending on depth of you DOM tree.optimizedMinLength
<number> Minimum length for optimising selector. Starts from 2
. For example selector body > div > div > p
can be optimized to body p
.threshold
<number> Max number of selectors to check before falling into nth-child
usage. Checking for uniqueness of selector is very costs operation, if you have DOM tree depth of 5, with 5 classes on each level, that gives you more than 3k selectors to check. finder uses two step approach so it's reaching this threshold in some cases twice. Default 1000
is good enough in most cases.See CHANGELOG.md
FAQs
A utility to convert puppeteer ElementHandle to CSS Selector.
We found that puppeteer-element2selector demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
Security News
NVD’s backlog surpasses 20,000 CVEs as analysis slows and NIST announces new system updates to address ongoing delays.
Security News
Research
A malicious npm package disguised as a WhatsApp client is exploiting authentication flows with a remote kill switch to exfiltrate data and destroy files.