قابلیت ها گزینه هایی هستند که می توانید برای سفارشی کردن و پیکربندی جلسه 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 را راه اندازی کنید
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
در قابلیت های انتخاب شده ذخیره می شوند.
شی perfLoggingPrefs
فرهنگ لغت perfLoggingPrefs
فرمت زیر را دارد. همه کلیدها اختیاری هستند:
قابلیت های بازگشتی
در اینجا فهرستی از تمام قابلیتهای بازگردانده شده خاص Chrome، به عبارت دیگر، آنچه ChromeDriver هنگام ایجاد یک جلسه جدید برمیگرداند، آمده است.