Исходный код ChromeDriver является частью проекта Chromium, поэтому приходится загружать весь код Chromium.
Итак:
1. Посмотреть текущую документацию по сборке Chromium и проверить, что предложенная инструкция не устарела.
2. Установить MS Visual Studio 2015 (Community Edition) и обновить до SP 3.
3. Выбрать диск и создать каталог для проекта (после сборки ChromeDriver папка занимала 21 Gb):
d:\> mkdir chromium
4. Скачать depot_tools.zip (проверьте ссылку с указанной в документации) и разархивировать в подпапку:
d:\> cd chromium
d:\chromium> mkdir depot_tools
d:\chromium> cd depot_tools
d:\chromium\depot_tools> wget https://storage.googleapis.com/chrome-infra/depot_tools.zip
d:\chromium\depot_tools> unzip depot_tools.zip
5. Подняться на уровень выше, установить переменные среды:
d:\chromium\depot_tools> cd ..
d:\chromium> set PATH=D:\chromium\depot_tools;%PATH%
d:\chromium> set DEPOT_TOOLS_WIN_TOOLCHAIN=0
6. Загрузить исходный код Chromium, сгенерировать файлы для ninja:
d:\chromium> fetch chromium
d:\chromium> mkdir src
d:\chromium> cd src
d:\chromium\src> gclient sync
d:\chromium\src> gn gen out/Default
7. Скомпилировать ChromeDriver:
d:\chromium\src> ninja -C out/Default chromedriver
8. Если все успешно, то скомпилированный ChromeDriver будет находиться в файле:
D:\chromium\src\out\Default\chromedriver.exe
Для удобства повторной компиляции можно создать файл, который будет открывать окно командной строки с настроенными переменными среды:
d:\chromium\cmd4build.bat :
set PATH=D:\chromium\depot_tools;%PATH%
set DEPOT_TOOLS_WIN_TOOLCHAIN=0
start cmd.exe
exit
Использование c Selenium 3.0 (http://seleniumhq.org):
package automationFramework;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class TrySelenium3 {
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver", "D:/chromium/src/out/Default/chromedriver.exe");
ChromeDriver d = new ChromeDriver();
d.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
try {
d.get("http://google.com");
WebElement input = d.findElementByCssSelector("input[type=text]");
input.sendKeys("How Selenide creates WebDriver");
input.sendKeys(Keys.ENTER);
Thread.sleep(10000);
}
finally {
d.quit();
}
}
}
Использование с Selenide 4.0 (http://selenide.org):
package automationFramework;
import com.codeborne.selenide.*;
import static com.codeborne.selenide.Selenide.*;
import static com.codeborne.selenide.Condition.*;
import static com.codeborne.selenide.CollectionCondition.*;
public class TrySelenide4 {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "D:/chromium/src/out/Default/chromedriver.exe");
Configuration.browser = "chrome";
Configuration.holdBrowserOpen = true;
open("http://google.com");
$("input[type=text]").append("How Selenide creates WebDriver").pressEnter();
}
}