این صفحه نحوه شروع استفاده از ChromeDriver را برای آزمایش وبسایت خود در دسکتاپ (ویندوز/مک/لینوکس) نشان میدهد. همچنین میتوانید شروع به کار با Android یا شروع به کار با ChromeOS را بخوانید.
راه اندازی
ChromeDriver یک فایل اجرایی جداگانه است که Selenium WebDriver از آن برای کنترل Chrome استفاده می کند. توسط تیم Chromium با کمک مشارکت کنندگان WebDriver نگهداری می شود. اگر با Selenium WebDriver آشنا نیستید، باید سایت Selenium را بررسی کنید.
این مراحل را برای تنظیم تستهای خود برای اجرا با ChromeDriver دنبال کنید:
- اطمینان حاصل کنید که Chromium/Google Chrome در مکانی شناخته شده نصب شده است
- ChromeDriver انتظار دارد که Chrome را در مکان پیشفرض پلتفرم خود نصب کنید. همچنین میتوانید ChromeDriver را مجبور کنید از یک مکان سفارشی با تنظیم یک قابلیت خاص استفاده کند .
- باینری ChromeDriver را برای پلتفرم خود در بخش دانلودهای این سایت دانلود کنید
- به WebDriver کمک کنید تا فایل اجرایی ChromeDriver دانلود شده را پیدا کند
هر یک از این مراحل باید این ترفند را انجام دهد:
- مکان ChromeDriver را در متغیر محیطی PATH خود قرار دهید
- ( فقط جاوا ) مکان آن را با استفاده از ویژگی سیستم webdriver.chrome.driver مشخص کنید (نمونه زیر را ببینید)
- ( فقط Python ) مسیر ChromeDriver را هنگام نمونه سازی webdriver.Chrome (نمونه زیر را ببینید) را شامل می شود.
تست نمونه
جاوا:
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.*;
import org.junit.Test;
public class GettingStarted {
@Test
public void testGoogleSearch() throws InterruptedException {
// Optional. If not specified, WebDriver searches the PATH for chromedriver.
// System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
// WebDriver driver = new ChromeDriver();
driver.get("http://www.google.com/");
Thread.sleep(5000); // Let the user actually see something!
WebElement searchBox = driver.findElement(By.name("q"));
searchBox.sendKeys("ChromeDriver");
searchBox.submit();
Thread.sleep(5000); // Let the user actually see something!
driver.quit();
}
}
پایتون:
import time
from selenium import webdriver
driver = webdriver.Chrome('/path/to/chromedriver') # Optional argument, if not specified will search path.
driver.get('http://www.google.com/');
time.sleep(5) # Let the user actually see something!
search_box = driver.find_element_by_name('q')
search_box.send_keys('ChromeDriver')
search_box.submit()
time.sleep(5) # Let the user actually see something!
driver.quit()
طول عمر ChromeDriver را کنترل کنید
کلاس ChromeDriver فرآیند سرور ChromeDriver را هنگام ایجاد شروع میکند و با فراخوانی خروج، آن را خاتمه میدهد. این میتواند زمان قابل توجهی را برای مجموعههای آزمایشی بزرگ که در آن یک نمونه ChromeDriver در هر آزمایش ایجاد میشود، تلف کند. دو گزینه برای رفع این مشکل وجود دارد:
- از ChromeDriverService استفاده کنید. این برای اکثر زبان ها در دسترس است و به شما امکان می دهد سرور ChromeDriver را خودتان راه اندازی یا متوقف کنید. برای مثال جاوا (با JUnit 4) اینجا را ببینید:
import java.io.*;
import org.junit.*;
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.*;
import org.openqa.selenium.remote.*;
public class GettingStartedWithService {
private static ChromeDriverService service;
private WebDriver driver;
@BeforeClass
public static void createAndStartService() throws IOException {
service = new ChromeDriverService.Builder()
.usingDriverExecutable(new File("/path/to/chromedriver"))
.usingAnyFreePort()
.build();
service.start();
}
@AfterClass
public static void stopService() {
service.stop();
}
@Before
public void createDriver() {
driver = new RemoteWebDriver(service.getUrl(), new ChromeOptions());
}
@After public void quitDriver() {
driver.quit();
}
@Test
public void testGoogleSearch() {
driver.get("http://www.google.com");
// rest of the test...
}
}
پایتون:
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
service = Service('/path/to/chromedriver')
service.start()
driver = webdriver.Remote(service.service_url)
driver.get('http://www.google.com/');
time.sleep(5) # Let the user actually see something!
driver.quit()
- قبل از اجرای آزمایشات، سرور ChromeDriver را جداگانه راه اندازی کنید و با استفاده از Remote WebDriver به آن متصل شوید.
ترمینال:
$ ./chromedriver
Starting ChromeDriver
76.0.3809.68 (...) on port 9515
...
جاوا:
import java.net.*;
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.*;
import org.openqa.selenium.remote.*;
public class GettingStartedRemote {
public static void main(String[] args) throws MalformedURLException {
WebDriver driver = new RemoteWebDriver(
new URL("http://127.0.0.1:9515"),
new ChromeOptions());
driver.get("http://www.google.com");
driver.quit();
}
}