62 lines
1.9 KiB
TypeScript
62 lines
1.9 KiB
TypeScript
import { Browser, BrowserTabManager } from './libs/browser/src';
|
|
|
|
async function testSimplifiedBrowser() {
|
|
console.log('Testing simplified browser library...');
|
|
|
|
try {
|
|
console.log('Initializing browser...');
|
|
await Browser.initialize({
|
|
headless: true,
|
|
blockResources: true,
|
|
timeout: 10000,
|
|
});
|
|
|
|
// Test single page with proxy support
|
|
console.log('Testing page creation...');
|
|
const { page, contextId } = await Browser.createPageWithProxy(
|
|
'https://httpbin.org/json',
|
|
'http://doimvbnb-US-rotate:w5fpiwrb9895@p.webshare.io:80'
|
|
);
|
|
|
|
const content = await Browser.evaluate(page, () => document.body.textContent);
|
|
console.log('Page content:', content?.substring(0, 100) + '...');
|
|
|
|
// Test tab manager (no longer needs browser instance)
|
|
console.log('Testing tab manager...');
|
|
const tabManager = new BrowserTabManager();
|
|
|
|
// Test multiple URL scraping with different proxies
|
|
const urlProxyPairs = [
|
|
{ url: 'https://httpbin.org/uuid', proxy: '' }, // No proxy
|
|
{ url: 'https://httpbin.org/ip', proxy: '' }, // No proxy
|
|
];
|
|
|
|
const results = await tabManager.scrapeUrlsWithProxies(
|
|
urlProxyPairs,
|
|
async page => {
|
|
const text = await page.textContent('body');
|
|
return { content: text?.substring(0, 50) };
|
|
},
|
|
{ concurrency: 2 }
|
|
);
|
|
|
|
console.log('Scraping results:');
|
|
results.forEach((result, index) => {
|
|
console.log(` ${index + 1}. ${result.url}: ${result.success ? 'SUCCESS' : 'FAILED'}`);
|
|
if (result.data) {
|
|
console.log(` Data: ${result.data.content}...`);
|
|
}
|
|
});
|
|
|
|
// Clean up
|
|
await page.close();
|
|
await Browser.closeContext(contextId);
|
|
await Browser.close();
|
|
|
|
console.log('✅ Simplified browser test completed successfully!');
|
|
} catch (error) {
|
|
console.error('❌ Browser test failed:', error);
|
|
}
|
|
}
|
|
|
|
testSimplifiedBrowser();
|