На этой странице описано, как начать использовать ChromeDriver для тестирования вашего веб-сайта на настольном компьютере (Windows/Mac/Linux). Вы также можете прочитать «Начало работы с Android» или «Начало работы с ChromeOS» .
Настраивать
ChromeDriver — это отдельный исполняемый файл, который Selenium WebDriver использует для управления Chrome. Он поддерживается командой Chromium при помощи участников WebDriver. Если вы не знакомы с Selenium WebDriver, вам следует зайти на сайт Selenium .
Выполните следующие действия, чтобы настроить тесты для работы с ChromeDriver:
- Убедитесь, что Chromium/Google Chrome установлен в известном месте.
- ChromeDriver ожидает, что Chrome будет установлен в папку по умолчанию для вашей платформы. Вы также можете заставить ChromeDriver использовать собственное местоположение, установив специальную возможность.
- Загрузите двоичный файл ChromeDriver для вашей платформы в разделе загрузок на этом сайте.
- Помогите WebDriver найти загруженный исполняемый файл ChromeDriver.
Любой из этих шагов должен помочь:
- включите местоположение ChromeDriver в переменную среды PATH
- ( только для Java ) укажите его местоположение с помощью системного свойства 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. См. здесь пример Java (с 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(); } }