قابلیت ها و ChromeOptions

قابلیت ها گزینه هایی هستند که می توانید برای سفارشی کردن و پیکربندی جلسه ChromeDriver از آنها استفاده کنید. این صفحه تمام قابلیت های پشتیبانی شده از ChromeDriver و نحوه استفاده از آنها را مستند می کند.

APIهای زبان WebDriver راه‌هایی برای انتقال قابلیت‌ها به ChromeDriver ارائه می‌کنند. مکانیسم دقیق در زبان متفاوت است، اما بیشتر زبان ها از یکی یا هر دو مکانیسم زیر استفاده می کنند:

  1. از کلاس ChromeOptions استفاده کنید. این توسط جاوا، پایتون و غیره پشتیبانی می شود.
  2. از کلاس DesiredCapabilities استفاده کنید. این توسط Python، Ruby و غیره پشتیبانی می شود. در حالی که در جاوا نیز موجود است، استفاده از آن در جاوا منسوخ شده است.

با استفاده از کلاس ChromeOptions

می‌توانید نمونه‌ای از ChromeOptions ایجاد کنید که روش‌های مناسبی برای تنظیم قابلیت‌های خاص ChromeDriver دارد. سپس می‌توانید شی ChromeOptions را به سازنده ChromeDriver منتقل کنید:

ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);

از زمان Selenium نسخه 3.6.0، کلاس ChromeOptions در جاوا رابط Capabilities نیز پیاده‌سازی می‌کند، که به شما امکان می‌دهد سایر قابلیت‌های WebDriver را مشخص کنید که مختص ChromeDriver نیستند.

ChromeOptions options = new ChromeOptions();

// Add the WebDriver proxy capability.
Proxy proxy = new Proxy();
proxy.setHttpProxy("myhttpproxy:3337");
options.setCapability("proxy", proxy);

// Add a ChromeDriver-specific capability.
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);

از قابلیت های دلخواه استفاده کنید

برای استفاده از DesiredCapabilities ، باید نام قابلیت و نوع مقدار آن را بدانید. لیست کامل را ببینید.

پایتون

caps = webdriver.DesiredCapabilities.CHROME.copy()
caps['acceptInsecureCerts'] = True
driver = webdriver.Chrome(desired_capabilities=caps)

روبی

caps = Selenium::WebDriver::Remote::Capabilities.chrome(
  "goog:chromeOptions" => {"args" => [ "window-size=1000,800" ]})
driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps

موارد استفاده رایج

از پروفایل سفارشی استفاده کنید

به طور پیش فرض، ChromeDriver یک نمایه موقت جدید برای هر جلسه ایجاد می کند. ممکن است بخواهید تنظیمات برگزیده خاصی را تنظیم کنید یا فقط از یک نمایه سفارشی استفاده کنید، که به آن فهرست داده های کاربر نیز گفته می شود.

در صورت استفاده از نمایه موقت، می‌توانید از قابلیت chrome.prefs برای تعیین تنظیمات برگزیده برای اعمال پس از راه‌اندازی Chrome استفاده کنید. برای نمایه‌های سفارشی، می‌توانید از سوئیچ خط فرمان user-data-dir Chrome استفاده کنید تا به Chrome بگویید از کدام نمایه استفاده کند:

ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");

با اجرای Chrome در خط فرمان یا با ChromeDriver، با استفاده از سوئیچ user-data-dir که روی فهرستی جدید تنظیم شده است، نمایه سفارشی خود را ایجاد کنید.

اگر مسیر وجود نداشته باشد، Chrome یک نمایه جدید در مکان مشخص شده ایجاد می کند. سپس می‌توانید تنظیمات نمایه را تغییر دهید و ChromeDriver می‌تواند در آینده از نمایه استفاده کند. chrome://version در مرورگر باز کنید تا ببینید Chrome از چه نمایه ای استفاده می کند.

Chrome maximized را راه اندازی کنید

Chrome را با استفاده از کلید start-maximized به حداکثر رسانده کنید:

ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");

از یک Chrome اجرایی در یک مکان غیر استاندارد استفاده کنید

ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");

پنجره های محاوره ای را مسدود کنید

به‌طور پیش‌فرض، ChromeDriver Chrome را به گونه‌ای پیکربندی می‌کند که به پنجره‌های بازشو اجازه دهد. اگر می‌خواهید پنجره‌های بازشو را مسدود کنید و رفتار عادی Chrome را زمانی که ChromeDriver کنترل نمی‌کند بازیابی کنید، موارد زیر را انجام دهید:

ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("excludeSwitches",
     Arrays.asList("disable-popup-blocking"));

دایرکتوری دانلود را تنظیم کنید

کد زیر را می توان برای پیکربندی Chrome برای دانلود فایل ها در یک فهرست خاص استفاده کرد. با این حال، چندین هشدار وجود دارد که باید از آنها آگاه بود:

  • کروم استفاده از فهرست های خاص را برای دانلود ممنوع می کند. به ویژه، نمی توانید از پوشه دسکتاپ به عنوان دایرکتوری دانلود استفاده کنید. در لینوکس، نمی توانید از فهرست اصلی برای دانلود استفاده کنید. لیست دقیق دایرکتوری های ممنوعه در معرض تغییر است، بنابراین توصیه می کنیم از یک دایرکتوری منحصر به فرد استفاده کنید که معنای خاصی برای سیستم ندارد.
  • ChromeDriver به طور خودکار منتظر کامل شدن دانلود نمی ماند. اگر خیلی زود با driver.quit() تماس بگیرید، ممکن است Chrome قبل از پایان دانلود پایان یابد.
  • برای بهترین نتایج، از مسیرهای کامل استفاده کنید، زیرا مسیرهای نسبی همیشه کار نمی کنند.
  • در ویندوز، از \` as path separators. /` در ویندوز قابل اعتماد نیست.
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("download.default_directory", "/directory/path");
options.setExperimentalOption("prefs", prefs);

قابلیت های شناخته شده

اسناد سلنیوم و استاندارد W3C WebDriver را برای قابلیت‌های استاندارد پذیرفته شده توسط ChromeDriver بخوانید. در اینجا، ما قابلیت‌های خاص کروم را فهرست می‌کنیم.

شی ChromeOptions

اکثر قابلیت‌های خاص Chrome از طریق شی ChromeOptions در معرض دید قرار می‌گیرند. در برخی از زبان‌ها، آنها توسط کلاس ChromeOptions پیاده‌سازی می‌شوند. در زبان های دیگر، آنها در فرهنگ لغت goog:chromeOptions در قابلیت های انتخاب شده ذخیره می شوند.

نام تایپ کنید پیش فرض توضیحات
args لیست رشته ها فهرست آرگومان‌های خط فرمان برای استفاده در هنگام راه‌اندازی Chrome. آرگومان های دارای یک مقدار مرتبط باید با علامت '=' (مانند، ['start-maximized'، 'user-data-dir=/tmp/temp_profile']) از هم جدا شوند. فهرستی از آرگومان های Chrome را ببینید.
binary رشته مسیری به فایل اجرایی Chrome برای استفاده.
در macOS X، این باید باینری واقعی باشد، نه فقط برنامه، مانند /Applications/Google Chrome.app/Contents/MacOS/Google Chrome .
extensions لیست رشته ها فهرستی از افزونه‌های کروم برای نصب در هنگام راه‌اندازی. هر مورد در فهرست باید یک برنامه افزودنی Chrome بسته بندی شده با کدگذاری پایه ۶۴ باشد (crx.)
localState فرهنگ لغت یک فرهنگ لغت با هر مدخل شامل نام اولویت و مقدار آن. این تنظیمات بر روی فایل Local State در پوشه داده های کاربر اعمال می شود.
prefs فرهنگ لغت یک فرهنگ لغت با هر مدخل شامل نام اولویت و مقدار آن. این تنظیمات برگزیده فقط برای نمایه کاربری در حال استفاده اعمال می شود. برای مثال، فایل "Preferences" را در فهرست اطلاعات کاربر Chrome مشاهده کنید.
detach بولی نادرست اگر نادرست باشد، وقتی ChromeDriver از بین می‌رود، Chrome خارج می‌شود، صرفنظر از اینکه جلسه خارج شود.
اگر درست باشد، Chrome تنها در صورت خروج یا بسته شدن جلسه از آن خارج می‌شود. اگر درست است و جلسه متوقف نشود، ChromeDriver نمی‌تواند فهرست راهنمای داده‌های موقت کاربر را که نمونه Chrome در حال اجرا از آن استفاده می‌کند پاک کند.
debuggerAddress رشته
آدرس یک سرور دیباگر کروم برای اتصال، به شکل <hostname/ip:port>، مانند '127.0.0.1:38947'
excludeSwitches لیست رشته ها فهرست خط فرمان Chrome تغییر می‌کند تا ChromeDriver به‌طور پیش‌فرض هنگام راه‌اندازی Chrome عبور نمی‌کند. سوئیچ ها را با -- پیشوند ندهید.
minidumpPath رشته دایرکتوری برای ذخیره مینیمپ های کروم. (فقط در لینوکس پشتیبانی می شود.)
mobileEmulation فرهنگ لغت فرهنگ لغتی با مقدار «deviceName» یا مقادیر «deviceMetrics» و «userAgent». برای اطلاعات بیشتر به شبیه سازی موبایل مراجعه کنید.
perfLoggingPrefs فرهنگ لغت یک فرهنگ لغت اختیاری که تنظیمات برگزیده گزارش عملکرد را مشخص می کند. برای اطلاعات بیشتر به زیر مراجعه کنید.
windowTypes لیست رشته ها لیستی از انواع پنجره ها که در لیست دستگیره های پنجره ظاهر می شوند. برای دسترسی به عناصر webview، "webview" را در این لیست قرار دهید.

شی perfLoggingPrefs

فرهنگ لغت perfLoggingPrefs فرمت زیر را دارد. همه کلیدها اختیاری هستند:

نام تایپ کنید پیش فرض توضیحات
enableNetwork بولی درست است اینکه آیا رویدادها از دامنه شبکه جمع آوری شود یا خیر.
enablePage بولی درست است جمع آوری رویدادها از دامنه Page.
traceCategories رشته (خالی) رشته‌ای از دسته‌های ردیابی Chrome جدا شده با کاما که رویدادهای ردیابی باید برای آن جمع‌آوری شوند. یک رشته نامشخص یا خالی ردیابی را غیرفعال می کند.
bufferUsageReportingInterval عدد صحیح مثبت 1000 تعداد میلی ثانیه درخواستی بین DevTools ردیابی رویدادهای استفاده از بافر. به عنوان مثال، اگر 1000 باشد، یک بار در ثانیه، DevTools گزارش می دهد که بافر ردیابی چقدر پر است. اگر گزارشی نشان دهد که استفاده از بافر 100٪ است، یک هشدار صادر می شود.

قابلیت های بازگشتی

در اینجا فهرستی از تمام قابلیت‌های بازگردانده شده خاص Chrome، به عبارت دیگر، آنچه ChromeDriver هنگام ایجاد یک جلسه جدید برمی‌گرداند، آمده است.

نام تایپ کنید توضیحات
chrome.chromedriverVersion رشته نسخه ChromeDriver
userDataDir رشته مسیر به فهرست اطلاعات کاربر که کروم از آن استفاده می کند؛ توجه داشته باشید، این در یک فرهنگ لغت "کروم" است