Crawlingo SDK Health Dashboard

Generated: 11/7/2026, 8:06:30 pm | Duration: 26.95s
SDK Health Score
82%
API Coverage
81.5%
Total Tests
173
Passed
141
Failed
0
API Capability Matrix
Session instance created successfully
✔ PASS
All config methods exist and chain correctly
✔ PASS
Session successfully cloned
✔ PASS
Session successfully destroyed
✔ PASS
Standard tier page fetch success
✔ PASS
Standard tier page content match
✔ PASS
Stealthy tier page fetch success
✔ PASS
Stealthy tier page content match
✔ PASS
Browser tier page fetch success
✔ PASS
Auto tier page fetch success
✔ PASS
Page.create() returns Page instance
✔ PASS
Page url matches requested url
✔ PASS
Page status matches expected code 200
✔ PASS
Page html content loaded successfully
✔ PASS
Page title matches expected value
✔ PASS
Page.prototype.navigate()
🚧 NOT IMPLEMENTED
navigate method is missing
Page.prototype.reload()
🚧 NOT IMPLEMENTED
reload method is missing
Page.prototype.back()
🚧 NOT IMPLEMENTED
back method is missing
Page.prototype.forward()
🚧 NOT IMPLEMENTED
forward method is missing
Page.prototype.close()
🚧 NOT IMPLEMENTED
close method is missing
CSS table selector matched
✔ PASS
CSS table rows matched count
✔ PASS
CSS first row text matched headers
✔ PASS
CSS attr check returns array
✔ PASS
XPath th selector matched count
✔ PASS
XPath th texts extracted correctly
✔ PASS
findText matches element
✔ PASS
afterText matches correctly
✔ PASS
beforeText matches correctly
✔ PASS
regex matches correctly
✔ PASS
ElementCollection.at(1) returns Element instance
✔ PASS
Element text extracted successfully
✔ PASS
Element html extracted successfully
✔ PASS
extractStructured returns expected array format
✔ PASS
extractStructured correct rows length
✔ PASS
extractStructured field matching
✔ PASS
extractStructured second row matching
✔ PASS
Dataset.saveJson() file generated
✔ PASS
Dataset.saveJson() output matches format
✔ PASS
Dataset.saveCsv() file generated
✔ PASS
Dataset.saveCsv() output matches format
✔ PASS
Dataset.build() returns DatasetResult instance
✔ PASS
toDict() maps single row correctly
✔ PASS
DatasetResult.toJson() outputs file
✔ PASS
DatasetResult.toCsv() outputs file
✔ PASS
DatasetResult.toParquet() outputs file
✔ PASS
Dataset.prototype.toArrow()
🚧 NOT IMPLEMENTED
toArrow method is missing
Dataset.prototype.toDataFrame()
🚧 NOT IMPLEMENTED
toDataFrame method is missing
Dataset.prototype.df()
🚧 NOT IMPLEMENTED
df method is missing
Dataset.prototype.stream()
🚧 NOT IMPLEMENTED
stream method is missing
Dataset.prototype.update()
🚧 NOT IMPLEMENTED
update method is missing
Dataset.prototype.delete()
🚧 NOT IMPLEMENTED
delete method is missing
Profile 'chrome' loaded successfully
✔ PASS
Profile 'firefox' loaded successfully
✔ PASS
Profile 'safari' loaded successfully
✔ PASS
Profile 'edge' loaded successfully
✔ PASS
Single proxy config set successfully
✔ PASS
Proxy pool set successfully
✔ PASS
Proxy provider set successfully
✔ PASS
Session.prototype.proxyAuth()
🚧 NOT IMPLEMENTED
proxyAuth method is missing
Session.prototype.proxyRotate()
🚧 NOT IMPLEMENTED
proxyRotate method is missing
Page fetch with Session headers successful
✔ PASS
Page fetch with request headers successful
✔ PASS
Session.prototype.removeHeader()
🚧 NOT IMPLEMENTED
removeHeader method is missing
Session.prototype.mergeHeaders()
🚧 NOT IMPLEMENTED
mergeHeaders method is missing
Page fetch with Session cookies successful
✔ PASS
Session cookies authenticated successfully
✔ PASS
Page fetch with request cookies successful
✔ PASS
Request cookies authenticated successfully
✔ PASS
Session.prototype.deleteCookie()
🚧 NOT IMPLEMENTED
deleteCookie method is missing
Session.prototype.clearCookies()
🚧 NOT IMPLEMENTED
clearCookies method is missing
Session.prototype.getCookies()
🚧 NOT IMPLEMENTED
getCookies method is missing
Page fetch with default retries successful
✔ PASS
Session.prototype.retries()
🚧 NOT IMPLEMENTED
retries method is missing
Session.prototype.retryBackoff()
🚧 NOT IMPLEMENTED
retryBackoff method is missing
Session.prototype.retryDelay()
🚧 NOT IMPLEMENTED
retryDelay method is missing
Downloader instance created successfully
✔ PASS
downloadToMemory response code matches
✔ PASS
downloadToMemory bytes matches content length
✔ PASS
downloadToMemory data buffer contains payload
✔ PASS
downloadToMemory content type is binary
✔ PASS
downloadToMemory suggested filename matched header hint
✔ PASS
download to disk response code matches
✔ PASS
download to disk file generated
✔ PASS
download to disk file payload matches
✔ PASS
resumed download completes successfully
✔ PASS
maxBytes limits content length of buffer
✔ PASS
maxBytes buffer content trimmed correctly
✔ PASS
Sitemap instance created successfully
✔ PASS
listUrls returns array
✔ PASS
listUrls returns correct size of entries
✔ PASS
listUrls entry contains correct loc
✔ PASS
listUrls entry contains lastmod date
✔ PASS
listUrls entry contains changefreq
✔ PASS
listUrls entry contains priority score
✔ PASS
Sitemap.build() run completed successfully
✔ PASS
sitemapUrlForOrigin utility works
✔ PASS
All 50 concurrent requests completed successfully
✔ PASS
Average request speed matches high throughput (> 15 req/sec)
✔ PASS
All separate session requests completed successfully
✔ PASS
404 request returns status code 404
✔ PASS
500 request returns status code 500
✔ PASS
403 request returns status code 403
✔ PASS
Conn refused throws error successfully
✔ PASS
DNS failure throws error successfully
✔ PASS
Invalid URL throws error successfully
✔ PASS
CrawlingoError
🚧 NOT IMPLEMENTED
Custom error class is not exported in Node SDK
FetchError
🚧 NOT IMPLEMENTED
Custom error class is not exported in Node SDK
ParseError
🚧 NOT IMPLEMENTED
Custom error class is not exported in Node SDK
SelectorError
🚧 NOT IMPLEMENTED
Custom error class is not exported in Node SDK
AutoMatchFailed
🚧 NOT IMPLEMENTED
Custom error class is not exported in Node SDK
TimeoutError
🚧 NOT IMPLEMENTED
Custom error class is not exported in Node SDK
RateLimitError
🚧 NOT IMPLEMENTED
Custom error class is not exported in Node SDK
ChangeDetectionError
🚧 NOT IMPLEMENTED
Custom error class is not exported in Node SDK
ExportError
🚧 NOT IMPLEMENTED
Custom error class is not exported in Node SDK
DnsError
🚧 NOT IMPLEMENTED
Custom error class is not exported in Node SDK
FingerprintStoreError
🚧 NOT IMPLEMENTED
Custom error class is not exported in Node SDK
Watch class created successfully
✔ PASS
Watch query polling and stop works cleanly
✔ PASS
Python SDK directory exists for auditing
✔ PASS
JS Class Session exists
✔ PASS
Method parity: Session.headers (JS) <-> headers (Python)
✔ PASS
Synchronized
Method parity: Session.cookies (JS) <-> cookies (Python)
✔ PASS
Synchronized
Method parity: Session.proxy (JS) <-> proxy (Python)
✔ PASS
Synchronized
Method parity: Session.rateLimit (JS) <-> rate_limit (Python)
✔ PASS
Synchronized
Method parity: Session.autoMatch (JS) <-> auto_match (Python)
✔ PASS
Synchronized
Method parity: Session.timeout (JS) <-> timeout (Python)
✔ PASS
Synchronized
Method parity: Session.fingerprintPath (JS) <-> fingerprint_path (Python)
✔ PASS
Synchronized
Method parity: Session.fetcherTier (JS) <-> fetcher_tier (Python)
✔ PASS
Synchronized
Method parity: Session.browserProfile (JS) <-> browser_profile (Python)
✔ PASS
Synchronized
Method parity: Session.autoMatchWeights (JS) <-> auto_match_weights (Python)
✔ PASS
Synchronized
Method parity: Session.proxyPool (JS) <-> proxy_pool (Python)
✔ PASS
Synchronized
Method parity: Session.proxyProvider (JS) <-> proxy_provider (Python)
✔ PASS
Synchronized
Method parity: Session.clone (JS) <-> clone (Python)
✔ PASS
Synchronized
Method parity: Session.destroy (JS) <-> destroy (Python)
✔ PASS
Synchronized
JS Class Page exists
✔ PASS
Method parity: Page.create (JS) <-> create (Python)
✔ PASS
Synchronized
Method parity: Page.url (JS) <-> url (Python)
✔ PASS
Synchronized
Method parity: Page.status (JS) <-> status (Python)
✔ PASS
Synchronized
Method parity: Page.html (JS) <-> html (Python)
✔ PASS
Synchronized
Method parity: Page.title (JS) <-> title (Python)
✔ PASS
Synchronized
Method parity: Page.css (JS) <-> css (Python)
✔ PASS
Synchronized
Method parity: Page.xpath (JS) <-> xpath (Python)
✔ PASS
Synchronized
Method parity: Page.findText (JS) <-> find_text (Python)
✔ PASS
Synchronized
Method parity: Page.afterText (JS) <-> after_text (Python)
✔ PASS
Synchronized
Method parity: Page.beforeText (JS) <-> before_text (Python)
✔ PASS
Synchronized
Method parity: Page.regex (JS) <-> regex (Python)
✔ PASS
Synchronized
JS Class Dataset exists
✔ PASS
Method parity: Dataset.field (JS) <-> field (Python)
✔ PASS
Synchronized
Method parity: Dataset.autoMatch (JS) <-> auto_match (Python)
✔ PASS
Synchronized
Method parity: Dataset.timeout (JS) <-> timeout (Python)
✔ PASS
Synchronized
Method parity: Dataset.headers (JS) <-> headers (Python)
✔ PASS
Synchronized
Method parity: Dataset.build (JS) <-> build (Python)
✔ PASS
Synchronized
Method parity: Dataset.extractStructured (JS) <-> extract_structured (Python)
✔ PASS
Synchronized
Method parity: Dataset.buildStructured (JS) <-> build_structured (Python)
✔ PASS
Synchronized
Method parity: Dataset.saveJson (JS) <-> save_json (Python)
✔ PASS
Synchronized
Method parity: Dataset.saveCsv (JS) <-> save_csv (Python)
✔ PASS
Synchronized
JS Class Downloader exists
✔ PASS
Method parity: Downloader.allowResume (JS) <-> allow_resume (Python)
✔ PASS
Synchronized
Method parity: Downloader.maxBytes (JS) <-> max_bytes (Python)
✔ PASS
Synchronized
Method parity: Downloader.download (JS) <-> download (Python)
✔ PASS
Synchronized
Method parity: Downloader.downloadToMemory (JS) <-> download_to_memory (Python)
✔ PASS
Synchronized
JS Class Sitemap exists
✔ PASS
Method parity: Sitemap.maxDepth (JS) <-> max_depth (Python)
✔ PASS
Synchronized
Method parity: Sitemap.follow (JS) <-> follow (Python)
✔ PASS
Synchronized
Method parity: Sitemap.limit (JS) <-> limit (Python)
✔ PASS
Synchronized
Method parity: Sitemap.depth (JS) <-> depth (Python)
✔ PASS
Synchronized
Method parity: Sitemap.concurrency (JS) <-> concurrency (Python)
✔ PASS
Synchronized
Method parity: Sitemap.delay (JS) <-> delay (Python)
✔ PASS
Synchronized
Method parity: Sitemap.field (JS) <-> field (Python)
✔ PASS
Synchronized
Method parity: Sitemap.webhook (JS) <-> webhook (Python)
✔ PASS
Synchronized
Method parity: Sitemap.listUrls (JS) <-> list_urls (Python)
✔ PASS
Synchronized
Method parity: Sitemap.build (JS) <-> build (Python)
✔ PASS
Synchronized