chrome

اتصال از طریق Selenium به برنامه‌ی Headless Chrome

(Headless Chrome one-click app)

سلنیوم، یک ابزار قدرتمند و متن‌بازِ تست خودکار است که برای آزمایش برنامه‌های تحت وب به کار می‌رود. شما می‌توانید با استفاده از این ابزار بی‌نظیر، ربات خود را در Headless Chrome راه‌اندازی کنید.

اتصال به 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 شما خواهد بود.

شما برای اتصال ایمن به برنامه‌ی Headless Chrome خود به یک توکن جدید نیاز خواهید داشت که می‌توانید آموزش اضافه کردن آن را در صفحه‌ی توضیحات و نکات تکمیلی مشاهده کنید.
;