Skip to content


MIT 99 6 10,475
58.1 thousand (month) Aug 15 2019 chromedp(9 months ago)
29,481 30 187 Apache 2.0
Apr 25 2008 16.8 million (month) 4.21.0(10 days ago)

ChromeDP is an open-source library for driving browsers using the Chrome DevTools Protocol (CDP) in the Go programming language. It is a high-level library that abstracts away the low-level details of interacting with the CDP and provides a simple, intuitive API for performing common browser automation tasks such as clicking elements, filling out forms, and taking screenshots.

ChromeDP also supports parallel execution of browser tasks, making it well-suited for large-scale web scraping and testing applications. It is considered as one of the most popular Go package for automation and scraping tasks.

Selenium is a Python package that allows developers to automate web browsers. It provides a way for developers to interact with web browsers programmatically, simulating user interactions such as clicking links, filling out forms, and navigating between pages. Selenium can be used to automate tasks such as web scraping, testing web applications, and automating repetitive tasks on websites.

Selenium is built on top of WebDriver, which is a browser automation API that allows Selenium to interact with web browsers. Selenium supports a wide variety of web browsers, including Chrome, Firefox, Safari, and Internet Explorer.

One of the main advantages of Selenium is that it can be used with many different programming languages, not only Python, and it also supports different platforms.

The package also provide a set of APIs that allows you to interact with web pages, you can locate elements, interact with them, get their properties and interact with javascript, you can use the APIs to automate the browser and interact with web pages in the same way a human user would.

Selenium is widely used in web scraping, web testing, and other automation tasks because it allows developers to automate web browsers in a way that is very similar to how a human user would interact with the browser.

Overall, Selenium is a powerful and versatile tool for automating web browsers and is widely used in web scraping, web testing, and other automation tasks.

Example Use

package main

import (


func main() {
  var title, firstParagraph string

  // create context
  ctx, cancel := chromedp.NewContext(context.Background())
  defer cancel()

  // run task list (a scraping scenario)
  err := chromedp.Run(ctx,
    // go to page
    // wait for element to load
    // extract text from an element (css selector)
    chromedp.Text("title", &title),
    // extract first paragraph element
    chromedp.First(chromedp.ByTagName("p"), &firstParagraph),
  if err != nil {
    fmt.Println("error:", err)

  fmt.Printf("Title: %s\n", title)
  fmt.Printf("First paragraph: %s\n", firstParagraph)
from selenium import webdriver

# Create an instance of the webdriver
driver = webdriver.Firefox()

# Navigate to a website

# Find an element by its id
element = driver.find_element_by_id("example-id")

# Interact with the element

# Find an element by its name
element = driver.find_element_by_name("example-name")

# Fill an input form
element.send_keys("example text")

# Find and click a button

# Wait for the page to load

# Get the page title

# Close the browser

Alternatives / Similar

Was this page helpful?