قابلیت ها گزینه هایی هستند که می توانید برای سفارشی کردن و پیکربندی جلسه ChromeDriver از آنها استفاده کنید. این صفحه تمام قابلیت های پشتیبانی شده از ChromeDriver و نحوه استفاده از آنها را مستند می کند.
APIهای زبان WebDriver راههایی برای انتقال قابلیتها به ChromeDriver ارائه میکنند. مکانیسم دقیق در زبان متفاوت است، اما بیشتر زبان ها از یکی یا هر دو مکانیسم زیر استفاده می کنند:
- از کلاس
ChromeOptions
استفاده کنید. این توسط جاوا، پایتون و غیره پشتیبانی می شود. - از کلاس
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 را راه اندازی کنید
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
استفاده از فایل اجرایی Chrome در یک مکان غیر استاندارد
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
پنجره های محاوره ای را مسدود کنید
بهطور پیشفرض، ChromeDriver Chrome را به گونهای پیکربندی میکند که به پنجرههای بازشو اجازه دهد. اگر میخواهید پنجرههای بازشو را مسدود کنید (یعنی رفتار عادی کروم را زمانی که ChromeDriver کنترل نمیکند بازیابی کنید)، موارد زیر را انجام دهید:
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("excludeSwitches",
Arrays.asList("disable-popup-blocking"));
دایرکتوری دانلود را تنظیم کنید
کد زیر را می توان برای پیکربندی Chrome برای دانلود فایل ها در یک فهرست خاص استفاده کرد. با این حال، چندین هشدار وجود دارد که باید از آنها آگاه بود:
- کروم استفاده از فهرست های خاص را برای دانلود ممنوع می کند. به ویژه، نمی توانید از پوشه دسکتاپ به عنوان دایرکتوری دانلود استفاده کنید. در لینوکس، شما همچنین نمی توانید از فهرست اصلی برای دانلود استفاده کنید. از آنجایی که لیست دقیق دایرکتوری های ممنوعه در معرض تغییر است، توصیه می شود از دایرکتوری استفاده کنید که معنای خاصی برای سیستم ندارد.
- ChromeDriver به طور خودکار منتظر کامل شدن دانلود نمی ماند. اگر خیلی زود با driver.quit() تماس بگیرید، ممکن است Chrome قبل از پایان دانلود پایان یابد.
- مسیرهای نسبی همیشه کار نمی کنند. برای بهترین نتیجه، به جای آن از مسیر کامل استفاده کنید.
- در ویندوز، از "" به عنوان جداکننده مسیر استفاده کنید. استفاده از "/" در ویندوز قابل اعتماد نیست.
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
با قابلیت های دلخواه ذخیره می شوند.
شی perfLoggingPrefs
فرهنگ لغت perfLoggingPrefs فرمت زیر را دارد (همه کلیدها اختیاری هستند):
نام | تایپ کنید | پیش فرض | توضیحات |
---|---|---|---|
enableNetwork | بولی | درست است | اینکه آیا رویدادها از دامنه شبکه جمع آوری شود یا خیر. |
enablePage | بولی | درست است | جمع آوری رویدادها از دامنه Page. |
traceCategories | رشته | (خالی) | رشتهای از دستههای ردیابی Chrome جدا شده با کاما که رویدادهای ردیابی باید برای آن جمعآوری شوند. یک رشته نامشخص یا خالی ردیابی را غیرفعال می کند. |
bufferUsageReportingInterval | عدد صحیح مثبت | 1000 | تعداد میلی ثانیه درخواستی بین DevTools ردیابی رویدادهای استفاده از بافر. به عنوان مثال، اگر 1000 باشد، سپس یک بار در ثانیه، DevTools میزان پر بودن بافر ردیابی را گزارش می دهد. اگر گزارشی نشان دهد که استفاده از بافر 100٪ است، یک هشدار صادر می شود. |
قابلیت های بازگشتی
این فهرستی از تمام قابلیتهای بازگردانده شده مخصوص کروم است. (یعنی آنچه ChromeDriver هنگام ایجاد یک جلسه جدید برمی گرداند)
نام | تایپ کنید | توضیحات |
---|---|---|
chrome.chromedriverVersion | رشته | نسخه ChromeDriver |
userDataDir | رشته | مسیر به فهرست اطلاعات کاربر که کروم از آن استفاده می کند؛ توجه داشته باشید، این در یک فرهنگ لغت "کروم" است |