Chrome'da Selenium WebDriver test senaryoları nasıl çalıştırılır?


160

Bunu denedim

WebDriver driver = new ChromeDriver();

Ama hatayı alıyorum

Başarısız testler: setUp (com.TEST): Sürücü yürütülebilir dosyasının yolu webdriver.chrome.driver system özelliği tarafından ayarlanmalıdır; daha fazla bilgi için buradaki koda bakın . En son sürüm indirilebilir Bağlantı

Selenium-WebDriver test senaryolarını test etmek için Chrome'u nasıl yapabilirim?


Selenyum krom sürücüsünü code.google.com/p/chromedriver/downloads/list adresinden indirip indirmediğinizi ve selenyum- java'nızı çalıştırmadan önce "Harici Kavanoz Ekle" altındaki tutulmaya ekleyip eklemediğinizi anlamanız yararlı olacaktır. kodu.
Hemanth

Yanıtlar:


252

Yürütülebilir sürücüyü şu adresten indirmeniz gerekir: ChromeDriver Download

Öyleyse yapmanız gereken tek şey, sürücü nesnesini oluşturmadan önce aşağıdakileri kullanmaktır (zaten doğru sırada gösterilmiştir):

System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
WebDriver driver = new ChromeDriver();

Bu, ChromeDriver Dokümantasyonundaki en yararlı kılavuzdan alınmıştır .


@aimbire: hey aynı sorunla karşı karşıyayım. Ben de aynı şeyi yaptım ama bu hatayı alıyorum. "java.lang.IllegalStateException: Sürücü yürütülebilir dosyası yok: D: \ selenimPRJarg1 \ chromedriver.exe" Bir şey eksik miyim? "
kTiwari

Selenium Standalone Server'ı buradan indirmeniz gerekir docs.seleniumhq.org/download ve jar dosyasını Java projenize bağımlı olarak ekleyin.
dikirill

4
bunu nerede kullanıyorsunuz / yazıyorsunuz? System.setProperty ("webdriver.chrome.driver", "/ path / to / chromedriver"); WebDriver sürücüsü = yeni ChromeDriver ();
tijnn

1
Bu sorunun her cevabını araştırdım ve sadece bu cevap benim için çalıştı. (y)
puffles

Bu teknik olarak doğru olsa da, gerçekten bu çevresel değişkeni kodda ayarlamamanız gerekir, bu kodunuzdaki bir yolu kodlamakla aynıdır. Çevresel değişken, kodu çalıştırdığınız makinede ayarlanmalıdır, böylece her makine krom sürücüyü yürütülebilir dosyayı benzersiz bir yerde saklayabilir, ancak her şeyin hala çalışmasını sağlar.
Ardesco

21

Chrome Sürücüsü'nden krom sürücüsünün güncelleme sürümünü indirin Lütfen Burada Sürüm notunu da okuyun Burada Chrome Tarayıcı güncellenirse, yeni tarayıcı sürümüyle kompakt olabileceğinden yukarıdaki bağlantıdan yeni bir chormedriver indirmeniz gerekir.

 public class chrome 
 {

  public static void main(String[] args) {

       System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
       WebDriver driver = new ChromeDriver();


    driver.get("http://www.google.com");

  }

 }

3
Şimdi bu hantal bir çözüm. Bugünlerde kullandığınız bu ise bunu değiştirmenizi tavsiye ederim.
Mart'ta

1
İndirme bağlantısı artık güncel değil.
Gone Coding

Bu Kod, Google Chrome 69.0.3497.100 (Resmi Derleme) (64 bit) sürümünde çalışmıyor. Lütfen yeni kod önerin. Şimdiye kadar 65.0.0'dan daha eski sürümde çalışıyordu
Mitesh Thakery

18

ChromeDriver'ı bir klasöre indirmeli ve bu klasörü PATH değişkeninize eklemelisiniz. Çalışması için konsolunuzu yeniden başlatmanız gerekir.


8

MacOS'ta homebrew kullanıyorsanız şu komutu kullanabilirsiniz:

(DÜZENLE) :brew tap homebrew/cask && brew cask install chromedriver

Bundan sonra başka bir yapılandırma olmadan iyi çalışmalıdır.


2
şimdi öyle brew tap homebrew/cask && brew cask install chromedriver.
luk2302

6

Krom sürücü yüklemeniz gerekiyor. Bu paketi, aşağıda gösterildiği gibi nugget kullanarak yükleyebilirsiniz


1
Bu bir olabilir ama NuGet'teki sürüm çok eski: 13 Ekim 2014 tarihli 2.10.0
Tiago Freitas Leal

23 Mart'ta yine modası geçmiş. En son Chrome'da kullanılamıyor.
willem

6

Selenium web sürücüsünü kullanarak Chrome'da test senaryoları çalıştırmak için aşağıdaki kodu kullanabilirsiniz:

import java.io.IOException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class ChromeTest {

    /**
     * @param args
     * @throws InterruptedException
     * @throws IOException 
     */
    public static void main(String[] args) throws InterruptedException, IOException {
        // Telling the system where to find the Chrome driver
        System.setProperty(
                "webdriver.chrome.driver",
                "E:/chromedriver_win32/chromedriver.exe");

        WebDriver webDriver = new ChromeDriver();

        // Open google.com
        webDriver.navigate().to("http://www.google.com");

        String html = webDriver.getPageSource();

        // Printing result here.
        System.out.println(html);

        webDriver.close();
        webDriver.quit();
    }
}

5

Sitesinin en son sürümünü bulun chromedriver Buradan . İndirdikten sonra, örneğin python kurulumunuzun kökünden sıkıştırın C:/Program Files/Python-3.5ve işte bu kadar. Yolu herhangi bir yerde belirtmenize ve / veya chromedriveryolunuza veya benzerine eklemenize bile gerek yoktur . Sadece temiz bir Python kurulumunda yaptım ve işe yarıyor.


4
kötü tavsiye ... python kurulumunuzu kirletmeyin
Corey Goldberg

ayrıca, OP asla Python
Corey Goldberg

4

Chrome sürücüsünün son sürümünü indirin ve şu kodu kullanın:

System.setProperty("webdriver.chrome.driver", " path of chromedriver.exe");
WebDriver driver= new ChromeDriver();
driver.manage().window().maximize();
Thread.sleep(10000);
driver.get("http://stackoverflow.com");

1

Ubuntu'da chromium-chromedriverpaketi kurabilirsiniz :

apt install chromium-chromedriver

Bunun eski bir selenyum sürümü de yüklediğini unutmayın. En son selenyumu yüklemek için:

pip install selenium

0

Yukarıdaki tüm cevaplar doğrudur, aşağıdaki sorun ve çözümün küçük derin dalışlarıdır.

Örneğin selenyumdaki sürücü kurucu

WebDriver driver = new ChromeDriver();

çalıştırılabilir sürücüyü arar, bu durumda krom sürücüsü çalıştırılabilir dosyayı bulamazsa, krom sürücüsü çalıştırılabilir dosyayı arar.

istisna buradan gelir (kontrol durumu yöntemine dikkat edin)

 /**
   *
   * @param exeName Name of the executable file to look for in PATH
   * @param exeProperty Name of a system property that specifies the path to the executable file
   * @param exeDocs The link to the driver documentation page
   * @param exeDownload The link to the driver download page
   *
   * @return The driver executable as a {@link File} object
   * @throws IllegalStateException If the executable not found or cannot be executed
   */
  protected static File findExecutable(
      String exeName,
      String exeProperty,
      String exeDocs,
      String exeDownload) {
    String defaultPath = new ExecutableFinder().find(exeName);
    String exePath = System.getProperty(exeProperty, defaultPath);
    checkState(exePath != null,
        "The path to the driver executable must be set by the %s system property;"
            + " for more information, see %s. "
            + "The latest version can be downloaded from %s",
            exeProperty, exeDocs, exeDownload);

    File exe = new File(exePath);
    checkExecutable(exe);
    return exe;
  }

İstisna atan kontrol durumu yöntemi aşağıdadır

  /**
   * Ensures the truth of an expression involving the state of the calling instance, but not
   * involving any parameters to the calling method.
   *
   * <p>See {@link #checkState(boolean, String, Object...)} for details.
   */
  public static void checkState(
      boolean b,
      @Nullable String errorMessageTemplate,
      @Nullable Object p1,
      @Nullable Object p2,
      @Nullable Object p3) {
    if (!b) {
      throw new IllegalStateException(format(errorMessageTemplate, p1, p2, p3));
    }
  }

ÇÖZÜM : sürücü nesnesi oluşturmadan önce sistem özelliğini aşağıdaki gibi ayarlayın

System.setProperty("webdriver.gecko.driver", "path/to/chromedriver.exe");
WebDriver driver = new ChromeDriver();

sürücü hizmetinin çalıştırılabilir sürücüyü aradığı kod snippet'i (krom ve firefox için) aşağıdadır:

Krom:

   @Override
    protected File findDefaultExecutable() {
      return findExecutable("chromedriver", CHROME_DRIVER_EXE_PROPERTY,
          "https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver",
          "http://chromedriver.storage.googleapis.com/index.html");
    }

FireFox:

@Override
 protected File findDefaultExecutable() {
      return findExecutable(
        "geckodriver", GECKO_DRIVER_EXE_PROPERTY,
        "https://github.com/mozilla/geckodriver",
        "https://github.com/mozilla/geckodriver/releases");
    }

burada CHROME_DRIVER_EXE_PROPERTY = "webdriver.chrome.driver" ve GECKO_DRIVER_EXE_PROPERTY = "webdriver.gecko.driver"

benzer diğer tarayıcılar için de geçerlidir, aşağıdaki mevcut tarayıcı uygulaması listesinin anlık görüntüsüdür

resim açıklamasını buraya girin


0
To run Selenium WebDriver test cases in Chrome, follow these steps:


first of all set the property & chrome driver path

System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
then initialize the Chrome Driver's object

WebDriver driver = new ChromeDriver();
then pass the url into get method of WebDriver

driver.get("http://www.google.com");

0

Ben ikili gibi benim proje kaynakları direcotry dahil ettim:

src\main\resources\chrome\chromedriver_win32.zip
src\main\resources\chrome\chromedriver_mac64.zip
src\main\resources\chrome\chromedriver_linux64.zip

Kod:

import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.SystemUtils;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

import java.io.*;
import java.nio.file.Files;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

public WebDriver getWebDriver() throws IOException {
    File tempDir = Files.createTempDirectory("chromedriver").toFile();
    tempDir.deleteOnExit();
    File chromeDriverExecutable;

    final String zipResource;
    if (SystemUtils.IS_OS_WINDOWS) {
        zipResource = "chromedriver_win32.zip";
    } else if (SystemUtils.IS_OS_LINUX) {
        zipResource = "chromedriver_linux64.zip";
    } else if (SystemUtils.IS_OS_MAC) {
        zipResource = "chrome/chromedriver_mac64.zip";
    } else {
        throw new RuntimeException("Unsuppoerted OS");
    }

    try (InputStream is = getClass().getResourceAsStream("/chrome/" + zipResource)) {
        try (ZipInputStream zis = new ZipInputStream(is)) {
            ZipEntry entry;
            entry = zis.getNextEntry();
            chromeDriverExecutable = new File(tempDir, entry.getName());
            chromeDriverExecutable.deleteOnExit();
            try (OutputStream out = new FileOutputStream(chromeDriverExecutable)) {
                IOUtils.copy(zis, out);
            }
        }
    }

    System.setProperty("webdriver.chrome.driver", chromeDriverExecutable.getAbsolutePath());
    return new ChromeDriver();
}

-2

Krom sürücünün exe'sini indirin ve mevcut proje yerine çıkarın. İşte bağlantı, en son chromriver sürümünü indirebilirsiniz.

https://sites.google.com/a/chromium.org/chromedriver/

Burada başlatmak için basit kod tarayıcı ve url gidin.

System.setProperty("webdriver.chrome.driver", "path of chromedriver.exe");

WebDriver driver = new ChromeDriver();

driver.get("https://any_url.com");

Krom tornavidayı indirin ve çıkarın. daha sonra projenizde bir klasör oluşturun ve chromedriver olarak adlandırın ve .exe dosyasını içinde saklayın. ve bu yolu kullanın. Bu basit kod örneğidir. 'code' System.setProperty ("webdriver.chrome.driver", System.getProperty ("user.dir") + "\\ chromedriver \\ chromedriver.exe"); WebDriver sürücüsü = yeni ChromeDriver (); driver.get (" google.co.in" ); WebElement arama kutusu = driver.findElement (By.name ("q")); searchbox.sendKeys ("ücretsiz en iyi selenyum video eğiticileri"); searchbox.submit ();
vinay

Lütfen, bu yanıtı yorum ek bilgi vinay ile güncellemeyi düşünün.
Ricardo Souza
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.