Bu sayfada, web sitenizi şurada test etmek için ChromeDriver'ı kullanmaya nasıl başlayacağınız açıklanmaktadır: masaüstü (Windows/Mac/Linux). Ayrıca şunu da okuyabilirsiniz: Android'i Kullanmaya Başlama veya ChromeOS'i Kullanmaya Başlama.
Kurulum
ChromeDriver, Selenium WebDriver'ın Chrome'u denetlemek için kullandığı ayrı bir yürütülebilir dosyadır. WebDriver'a katkıda bulunanların yardımıyla Chromium ekibi tarafından yönetilir. Selenium WebDriver hakkında bilginiz yoksa Selenium sitesine göz atmalısınız.
ChromeDriver ile çalışacak testlerinizi ayarlamak için aşağıdaki adımları uygulayın:
- Chromium/Google Chrome'un tanınan bir konuma yüklendiğinden emin olun
- ChromeDriver, Chrome'u platformunuz için varsayılan konuma yüklemenizi bekler. Ayrıca, özel bir özellik ayarlayarak ChromeDriver'ı özel bir konum kullanmaya zorlayabilirsiniz.
- Bu sitenin indirmeler bölümünden platformunuz için ChromeDriver ikili programını indirin
- WebDriver'ın indirilen ChromeDriver yürütülebilir dosyasını bulmasına yardımcı olma
Bu adımlardan herhangi biri sorununuzu çözecektir:
- ChromeDriver konumunu PATH ortam değişkeninize ekleyin
- (Yalnızca Java) webdriver.chrome.driver sistem özelliğini kullanarak konumunu belirtin (aşağıdaki örneğe bakın)
- (Yalnızca Python), webdriver.Chrome örneğini oluştururken ChromeDriver yolunu ekleyin (aşağıdaki örneğe bakın)
Örnek test
Java:
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();
}
}
Python:
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'ın kullanım ömrünü kontrol et
ChromeDriver sınıfı, oluşturma sırasında ChromeDriver sunucu işlemini başlatır ve çıkma işlemi çağrıldığında sonlandırır. Bu durum, her testte ChromeDriver örneğinin oluşturulduğu büyük test paketleri için önemli ölçüde zaman kaybına neden olabilir. Bunu düzeltmek için iki seçenek vardır:
- ChromeDriverService'i kullanın. Bu, çoğu dilde kullanılabilir ve ChromeDriver sunucusunu sizin başlatmanıza veya durdurmanıza olanak tanır. Bir Java örneği için buraya bakın (JUnit 4 ile):
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...
}
}
Python:
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()
- Testlerinizi çalıştırmadan önce ChromeDriver sunucusunu ayrı olarak başlatın ve Remote WebDriver'ı kullanarak sunucuya bağlanın.
Terminal:
$ ./chromedriver
Starting ChromeDriver
76.0.3809.68 (...) on port 9515
...
Java:
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();
}
}