Làm cách nào để chạy các trường hợp thử nghiệm Selenium WebDriver trong Chrome?


160

Tôi đã thử nó

WebDriver driver = new ChromeDriver();

Nhưng tôi đang nhận được lỗi là

Các thử nghiệm thất bại: setUp (com.TEST): Đường dẫn đến trình điều khiển thực thi phải được đặt bởi thuộc tính hệ thống webdo.chrome.driver; để biết thêm thông tin, xem mã ở đây . Có thể tải xuống phiên bản mới nhất từ Link

Làm cách nào tôi có thể tạo Chrome để kiểm tra các trường hợp thử nghiệm Selenium-WebDriver?


Sẽ rất hữu ích nếu bạn có thể biết, liệu bạn đã tải xuống trình điều khiển chrome selenium từ code.google.com/p/chromedriver/doads/list và thêm nó vào thư viện trong nhật thực trong "Thêm Jars ngoài" trước khi chạy selenium-java của bạn mã.
Hemanth

Câu trả lời:


252

Bạn cần tải xuống trình điều khiển thực thi từ: Tải xuống ChromeDriver

Sau đó, tất cả những gì bạn cần làm là sử dụng như sau trước khi tạo đối tượng trình điều khiển (đã được hiển thị theo đúng thứ tự):

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

Điều này đã được trích xuất từ ​​hướng dẫn hữu ích nhất từ Tài liệu ChromeDriver .


@aimbire: hey tôi đang đối mặt với vấn đề tương tự. Tôi đã làm điều tương tự được đề xuất bởi bạn nhưng nhận được lỗi này. "java.lang.IllegalStateException: Trình điều khiển thực thi không tồn tại: D: \ selenimPRJarg1 \ chromedriver.exe" Tôi có thiếu thứ gì không "?
kTiwari

Bạn phải tải xuống Máy chủ độc lập Selenium từ đây docs.seleniumhq.org/doad và thêm tệp jar làm phụ thuộc vào dự án Java của bạn.
dikirill

4
bạn sử dụng / gõ cái này ở đâu? System.setProperty ("webdo.chrom.driver", "/ path / to / chromedriver"); Trình điều khiển WebDriver = ChromeDriver mới ();
tijnn

1
Tôi đã khám phá mọi câu trả lời cho câu hỏi này và chỉ có câu trả lời này làm việc cho tôi. (y)
phồng

Mặc dù điều này đúng về mặt kỹ thuật, bạn thực sự không nên thiết lập biến môi trường đó trong mã, nó giống như mã hóa cứng một đường dẫn trong mã của bạn. Biến môi trường nên được đặt trên máy mà bạn chạy mã, cho phép mỗi máy lưu trữ trình điều khiển chrome có thể thực thi ở một nơi duy nhất nhưng mọi thứ vẫn hoạt động.
Ardesco

21

Tải xuống phiên bản cập nhật trình điều khiển chrome từ Trình điều khiển Chrome Vui lòng Đọc cả Ghi chú phát hành Tại đây Nếu Trình duyệt chrome được cập nhật thì bạn cần tải xuống chormedriver mới từ liên kết trên vì nó có thể nhỏ gọn với phiên bản trình duyệt mới.

 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
Bây giờ đó là một giải pháp rườm rà. Tôi khuyên bạn nên thay đổi điều này nếu đó là những gì bạn sử dụng ngày nay.
aimbire

1
Liên kết tải xuống đã hết hạn.
Mã hóa

Mã này không hoạt động trong Google Chrome Phiên bản 69.0.3497.100 (Bản dựng chính thức) (64-bit). Xin bro đề nghị mã mới. Cho đến bây giờ nó vẫn hoạt động trong phiên bản cũ hơn phiên bản 65.0.0
Mitesh Thakery 17/11/18

18

Bạn nên tải xuống chromeDriver trong một thư mục và thêm thư mục này vào biến PATH của bạn. Bạn sẽ phải khởi động lại bàn điều khiển của bạn để làm cho nó hoạt động.


8

Nếu bạn đang sử dụng homebrew trên MacOS, bạn có thể sử dụng lệnh:

(EDIT) :brew tap homebrew/cask && brew cask install chromedriver

Nó sẽ hoạt động tốt sau đó mà không có cấu hình khác.


2
bởi bây giờ nó là brew tap homebrew/cask && brew cask install chromedriver.
luk2302

6

Bạn cần cài đặt trình điều khiển chrome. Bạn có thể cài đặt gói này bằng cách sử dụng nugget như hình dưới đây


1
Đây có thể là một nhưng phiên bản trên NuGet đã quá cũ: 2.10.0 ngày 13 tháng 10 năm 2014
Tiago Freitas Leal

Đã lỗi thời một lần nữa vào ngày 23 tháng 3. Không thể sử dụng trên Chrome mới nhất.
willem

6

Bạn có thể sử dụng mã dưới đây để chạy các trường hợp thử nghiệm trong Chrome bằng trình điều khiển web Selenium:

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

Tìm phiên bản mới nhất chromedriver ở đây . Sau khi tải xuống, hãy giải nén nó tại thư mục gốc của bản cài đặt python của bạn, vd C:/Program Files/Python-3.5, và đó là nó. Bạn thậm chí không cần chỉ định đường dẫn ở bất cứ đâu và / hoặc thêm chromedrivervào đường dẫn của bạn hoặc tương tự. Tôi vừa thực hiện nó trên một bản cài đặt Python sạch và nó hoạt động.


4
lời khuyên tồi ... đừng làm ô nhiễm cài đặt trăn của bạn
Corey Goldberg

Ngoài ra, OP không bao giờ chỉ định Python
Corey Goldberg

4

Tải xuống phiên bản mới nhất của trình điều khiển chrome và sử dụng mã này:

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

Trên Ubuntu, bạn chỉ cần cài đặt chromium-chromedrivergói:

apt install chromium-chromedriver

Xin lưu ý rằng điều này cũng cài đặt một phiên bản selen đã lỗi thời. Để cài đặt selen mới nhất:

pip install selenium

0

Tất cả các câu trả lời ở trên là chính xác, sau đây là một chút đi sâu vào vấn đề và giải pháp.

Trình xây dựng trình điều khiển trong selenium chẳng hạn

WebDriver driver = new ChromeDriver();

tìm kiếm trình điều khiển thực thi, trong trường hợp này trình điều khiển chrome tìm kiếm trình điều khiển chrome thực thi, trong trường hợp dịch vụ không thể tìm thấy thực thi, ngoại lệ được ném

đây là trường hợp ngoại lệ xuất phát (lưu ý phương thức kiểm tra trạng thái)

 /**
   *
   * @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;
  }

Sau đây là phương pháp kiểm tra trạng thái ném ngoại lệ

  /**
   * 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));
    }
  }

GIẢI PHÁP : đặt thuộc tính hệ thống trước khi tạo đối tượng trình điều khiển như sau

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

sau đây là đoạn mã (cho chrome và firefox) nơi dịch vụ trình điều khiển tìm kiếm trình điều khiển thực thi:

Trình duyệt Chrome:

   @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");
    }

trong đó CHROME_DRIVER_EXE_PROPERTY = "webdo.chrome.driver" và GECKO_DRIVER_EXE_PROPERTY = "webdo.gecko.driver"

tương tự là trường hợp của các trình duyệt khác, sau đây là ảnh chụp nhanh danh sách triển khai trình duyệt có sẵn

nhập mô tả hình ảnh ở đây


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

Tôi đã bao gồm nhị phân vào tài nguyên dự án của tôi như vậy:

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

Mã số:

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

Tải xuống exe của chromedriver và giải nén nó trên vị trí dự án hiện tại. Tại đây, liên kết, nơi chúng ta có thể tải xuống phiên bản mới nhất của chromedriver.

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

Đây là mã đơn giản cho trình duyệt khởi chạy và điều hướng đến url.

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

WebDriver driver = new ChromeDriver();

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

Tải về chromedriver và giải nén nó. tiếp theo tạo một thư mục trong dự án của bạn và đặt tên nó là chromedriver và giữ tệp .exe trong đó. và sử dụng đường dẫn này. Đây là ví dụ mã đơn giản. 'code' System.setProperty ("webdo.chrome.driver", System.getProperty ("user.dir") + "\\ chromedriver \\ chromedriver.exe"); Trình điều khiển WebDriver = ChromeDriver mới (); driver.get (" google.co.in" ); WebEuity searchbox = driver.findE bổ sung (By.name ("q")); searchbox.sendKeys ("hướng dẫn bằng video selen tốt nhất miễn phí"); hộp tìm kiếm.submit ();
vinay

Xin vui lòng, xem xét cập nhật câu trả lời này với thông tin bổ sung vinay đã nhận xét.
Ricardo Souza
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.