اتصال از طریق Selenium به برنامهی Headless Chrome
(Headless Chrome one-click app)سلنیوم، یک ابزار قدرتمند و متنبازِ تست خودکار است که برای آزمایش برنامههای تحت وب به کار میرود. شما میتوانید با استفاده از این ابزار بینظیر، ربات خود را در Headless Chrome راهاندازی کنید.
- اتصال به Headless Chrome با کتابخانه Selenium در NodeJS
- اتصال به Headless Chrome با کتابخانه Selenium در Python
اتصال به Headless Chrome با کتابخانه Selenium در NodeJS
در ابتدا، برای استفاده از کتابخانه Selenium، شما بایستی آن را با استفاده از npm نصب کنید:
npm install selenium-webdriver
اکنون میتوانید با استفاده از قطعه کد زیر، به Headless Chrome متصل شده و با استفاده از کتابخانه Selenium، کارهای مد نظر خود را انجام دهید. برای نمونه، قطعه کد زیر یک اسکرینشات از سایت داده شده میگیرد و آن را در پوشه uploads ذخیره میکند:
const webdriver = require('selenium-webdriver');
const fs = require('fs');
const chromeCapabilities = webdriver.Capabilities.chrome();
chromeCapabilities.set('browserless:token', 'YOUR-API-TOKEN');
chromeCapabilities.set('goog:chromeOptions', {
args: [
'--disable-background-timer-throttling',
'--disable-backgrounding-occluded-windows',
'--disable-breakpad',
'--disable-component-extensions-with-background-pages',
'--disable-dev-shm-usage',
'--disable-extensions',
'--disable-features=TranslateUI,BlinkGenPropertyTrees',
'--disable-ipc-flooding-protection',
'--disable-renderer-backgrounding',
'--enable-features=NetworkService,NetworkServiceInProcess',
'--force-color-profile=srgb',
'--hide-scrollbars',
'--metrics-recording-only',
'--mute-audio',
'--headless',
'--no-sandbox',
],
});
const driver = new webdriver.Builder()
.forBrowser('chrome')
.withCapabilities(chromeCapabilities)
// Specify browserless for the server
.usingServer('https://YOUR-LIARA-ADDRESS.liara.run/webdriver')
.build();
(async () => {
try {
await driver.get('https://www.google.com/');
// Take screenshot of results page. Save to disk.
const base64png = await driver.takeScreenshot();
fs.writeFileSync('uploads/screenshot.png', new Buffer(base64png, 'base64'));
} finally {
driver.quit();
}
})();
توجه کنید که در قطعه کد بالا به جای YOUR-API-TOKEN و YOUR-LIARA-ADDRESS باید به ترتیب token و شناسه برنامه Headless Chrome خود را بگذارید. برای دسترسی به token کافیست وارد قسمت تنظیمات برنامه Headless Chrome خود شوید و مقدار متغیر محیطی TOKEN همان token شما خواهد بود.
اتصال به Headless Chrome با کتابخانه Selenium در Python
در صورتی که تمایلی به خواندن آموزش متنی ندارید میتوانید ویدیوی آموزشی زیر را مشاهده کنید.
در ابتدا، برای استفاده از کتابخانه Selenium، شما بایستی آن را با استفاده از pip نصب کنید:
pip install selenium
اکنون میتوانید با استفاده از قطعه کد زیر، به Headless Chrome متصل شده و با استفاده از کتابخانه Selenium، کارهای مد نظر خود را انجام دهید. برای نمونه، قطعه کد زیر Title سایت داده شده را میگیرد و آن را پرینت میکند:
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.set_capability('browserless:token', 'YOUR-API-TOKEN')
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--headless")
driver = webdriver.Remote(
command_executor='https://YOUR-LIARA-ADDRESS.liara.run/webdriver',
options=chrome_options
)
driver.get("https://www.google.com")
print(driver.title)
driver.quit()
توجه کنید که در قطعه کد بالا به جای YOUR-API-TOKEN و YOUR-LIARA-ADDRESS باید به ترتیب token و شناسه برنامه Headless Chrome خود را بگذارید. برای دسترسی به token کافیست وارد قسمت تنظیمات برنامه Headless Chrome خود شوید و مقدار متغیر محیطی TOKEN همان token شما خواهد بود.