← Home

ðŸŒē

⌘K
ðŸĪ–
Claude Code AI Tools
ðŸĪ—
Hugging Face AI Tools
ðŸĶœ
LangChain AI Tools
🧠
Keras AI Tools
ðŸĶ™
Ollama AI Tools
🐍
Python Programming Languages
ðŸŸĻ
JavaScript Programming Languages
🔷
TypeScript Programming Languages
⚛ïļ
React Programming Languages
ðŸđ
Go Programming Languages
ðŸĶ€
Rust Programming Languages
📊
MATLAB Programming Languages
🗄ïļ
SQL Programming Languages
⚙ïļ
C/C++ Programming Languages
☕
Java Programming Languages
ðŸŸĢ
C# Programming Languages
🍎
Swift Programming Languages
🟠
Kotlin Programming Languages
â–ē
Next.js Programming Languages
💚
Vue.js Programming Languages
ðŸ”Ĩ
Svelte Programming Languages
ðŸŽĻ
Tailwind CSS Programming Languages
💚
Node.js Programming Languages
🌐
HTML Programming Languages
ðŸŽĻ
CSS/SCSS Programming Languages
🐘
PHP Programming Languages
💎
Ruby Programming Languages
ðŸ”ī
Scala Programming Languages
📊
R Programming Languages
ðŸŽŊ
Dart Programming Languages
💧
Elixir Programming Languages
🌙
Lua Programming Languages
🐊
Perl Programming Languages
🅰ïļ
Angular Programming Languages
🚂
Express.js Programming Languages
ðŸą
NestJS Programming Languages
ðŸ›Īïļ
Ruby on Rails Programming Languages
◾ïļ
GraphQL Programming Languages
🟊
Haskell Programming Languages
💚
Nuxt.js Programming Languages
🔷
SolidJS Programming Languages
⚡
htmx Programming Languages
ðŸ’ŧ
VS Code Development Tools
🧠
PyCharm Development Tools
📓
Jupyter Development Tools
🧠
IntelliJ IDEA Development Tools
💚
Neovim Development Tools
ðŸ”Ū
Emacs Development Tools
🔀
Git DevOps & CLI
ðŸģ
Docker DevOps & CLI
â˜ļïļ
Kubernetes DevOps & CLI
☁ïļ
AWS CLI DevOps & CLI
🔄
GitHub Actions DevOps & CLI
🐧
Linux Commands DevOps & CLI
ðŸ’ŧ
Bash Scripting DevOps & CLI
🌐
Nginx DevOps & CLI
📝
Vim DevOps & CLI
ðŸ”Ļ
Makefile DevOps & CLI
🧊
Pytest DevOps & CLI
🊟
Windows DevOps & CLI
ðŸ“Ķ
Package Managers DevOps & CLI
🍎
macOS DevOps & CLI
🏗ïļ
Terraform DevOps & CLI
🔧
Ansible DevOps & CLI
⎈
Helm DevOps & CLI
ðŸ”Ļ
Jenkins DevOps & CLI
ðŸ”Ĩ
Prometheus DevOps & CLI
📊
Grafana DevOps & CLI
ðŸ’ŧ
Zsh DevOps & CLI
🐟
Fish Shell DevOps & CLI
💙
PowerShell DevOps & CLI
🔄
Argo CD DevOps & CLI
🔀
Traefik DevOps & CLI
☁ïļ
Azure CLI DevOps & CLI
☁ïļ
Google Cloud CLI DevOps & CLI
📟
tmux DevOps & CLI
🔧
jq DevOps & CLI
✂ïļ
sed DevOps & CLI
📊
awk DevOps & CLI
🌊
Apache Airflow DevOps & CLI
ðŸ”Ē
NumPy Databases & Data
🐞
Pandas Databases & Data
ðŸ”Ĩ
PyTorch Databases & Data
🧠
TensorFlow Databases & Data
📈
Matplotlib Databases & Data
🐘
PostgreSQL Databases & Data
🐎
MySQL Databases & Data
🍃
MongoDB Databases & Data
ðŸ”ī
Redis Databases & Data
🔍
Elasticsearch Databases & Data
ðŸĪ–
Scikit-learn Databases & Data
👁ïļ
OpenCV Databases & Data
⚡
Apache Spark Databases & Data
ðŸŠķ
SQLite Databases & Data
⚡
Supabase Databases & Data
ðŸ”ĩ
Neo4j Databases & Data
ðŸ“Ļ
Apache Kafka Databases & Data
🐰
RabbitMQ Databases & Data
ðŸ”Ī
Regex Utilities
📝
Markdown Utilities
📄
LaTeX Utilities
🔐
SSH & GPG Utilities
🌐
curl & HTTP Utilities
📜
reStructuredText Utilities
🚀
Postman Utilities
🎎
FFmpeg Utilities
🖞ïļ
ImageMagick Utilities
🔍
ripgrep Utilities
🔍
fzf Utilities
📗
Microsoft Excel Office Applications
📘
Microsoft Word Office Applications
📙
Microsoft PowerPoint Office Applications
📝
Hancom Hangul Hancom Office
ðŸ“―ïļ
Hancom Hanshow Hancom Office
📊
Hancom Hancell Hancom Office
📄
Google Docs Google Workspace
📊
Google Sheets Google Workspace
ðŸ“―ïļ
Google Slides Google Workspace
🔌
Cadence Virtuoso EDA & Hardware
⚙ïļ
Synopsys EDA EDA & Hardware
💎
Verilog & VHDL EDA & Hardware
⚡
LTSpice EDA & Hardware
🔧
KiCad EDA & Hardware
📝
Notion Productivity
💎
Obsidian Productivity
💎
Slack Productivity
ðŸŽŪ
Discord Productivity
ðŸŽĻ
Figma Design Tools
📘
Confluence Atlassian
📋
Jira Atlassian
🃏
Jest Testing
⚡
Vitest Testing
🎭
Playwright Testing
ðŸŒē
Cypress Testing
🌐
Selenium Testing
💙
Flutter Mobile Development
ðŸ“ą
React Native Mobile Development
🍎
SwiftUI Mobile Development
ðŸ“ą
Expo Mobile Development
🐍
Django Web Frameworks
⚡
FastAPI Web Frameworks
ðŸŒķïļ
Flask Web Frameworks
🍃
Spring Boot Web Frameworks
ðŸļ
Gin Web Frameworks
⚡
Vite Build Tools
ðŸ“Ķ
Webpack Build Tools
⚡
esbuild Build Tools
🐘
Gradle Build Tools
ðŸŠķ
Maven Build Tools
🔧
CMake Build Tools
ðŸŽŪ
Unity Game Development
ðŸĪ–
Godot Game Development
🔌
Arduino Embedded & IoT
🔍
Nmap Security
🐕
Datadog Monitoring
📖
Swagger/OpenAPI Documentation
No results found
EN KO

Basics

CLI Commands

npm install -D cypress Install Cypress
npx cypress open Open Cypress app
npx cypress run Run tests headlessly
npx cypress run --browser chrome Run in Chrome
npx cypress run --spec "cypress/e2e/login.cy.js" Run specific spec
npx cypress run --headed Run with browser visible
npx cypress run --record Record to Dashboard
npx cypress verify Verify installation

Test Structure

Basic test
describe('Login Page', () => {
  beforeEach(() => {
    cy.visit('/login');
  });

  it('displays login form', () => {
    cy.get('[data-cy=email]').should('be.visible');
    cy.get('[data-cy=password]').should('be.visible');
  });

  it('logs in successfully', () => {
    cy.get('[data-cy=email]').type('user@example.com');
    cy.get('[data-cy=password]').type('password123');
    cy.get('[data-cy=submit]').click();
    cy.url().should('include', '/dashboard');
  });
});
Configuration
// cypress.config.js
const { defineConfig } = require('cypress');

module.exports = defineConfig({
  e2e: {
    baseUrl: 'http://localhost:3000',
    viewportWidth: 1280,
    viewportHeight: 720,
    video: true,
    screenshotOnRunFailure: true,
    defaultCommandTimeout: 10000,
    setupNodeEvents(on, config) {
      // Node event listeners
    },
  },
});

Selectors

Getting Elements

Basic selectors
cy.get('button');                    // CSS selector
cy.get('.class-name');                // Class
cy.get('#id');                        // ID
cy.get('[data-cy=submit]');           // Data attribute (recommended)
cy.get('[data-testid=button]');       // Test ID
cy.get('input[type="text"]');         // Attribute selector
Finding elements
cy.contains('Submit');               // Text content
cy.contains('button', 'Submit');      // Element with text

// Chaining
cy.get('.form')
  .find('input')                      // Find within
  .first()                            // First element
  .last()                             // Last element
  .eq(2);                             // Element at index
Traversal
cy.get('li').parent();               // Parent element
cy.get('ul').children();              // Direct children
cy.get('div').siblings();             // Siblings
cy.get('span').closest('form');       // Closest ancestor
cy.get('ul').next();                  // Next sibling
cy.get('ul').prev();                  // Previous sibling
cy.get('div').filter('.active');      // Filter by selector

Actions

User Actions

Click actions
cy.get('button').click();
cy.get('button').dblclick();          // Double click
cy.get('button').rightclick();        // Right click
cy.get('button').click({ force: true }); // Force click
cy.get('button').click('topRight');   // Click position
cy.get('button').click(80, 20);       // Click coordinates
Type actions
cy.get('input').type('Hello World');
cy.get('input').type('text{enter}');  // With enter key
cy.get('input').type('{selectall}{backspace}'); // Clear
cy.get('input').type('{ctrl+a}');     // Keyboard shortcuts
cy.get('input').clear();              // Clear input
cy.get('input').type('slow', { delay: 100 }); // Slow typing
Special keys
{enter}       // Enter key
{backspace}   // Backspace
{del}         // Delete
{esc}         // Escape
{tab}         // Tab
{uparrow}     // Up arrow
{downarrow}   // Down arrow
{leftarrow}   // Left arrow
{rightarrow}  // Right arrow
{ctrl+a}      // Select all
{alt+f4}      // Alt+F4
{shift+tab}   // Shift+Tab
Form actions
cy.get('select').select('Option 1');  // Select by text
cy.get('select').select('value1');    // Select by value
cy.get('input[type="checkbox"]').check();
cy.get('input[type="checkbox"]').uncheck();
cy.get('input[type="radio"]').check('value');
cy.get('input[type="file"]').selectFile('file.txt');
cy.get('form').submit();

Other Actions

Scroll & Focus
cy.get('element').scrollIntoView();
cy.scrollTo('bottom');
cy.scrollTo(0, 500);                  // x, y coordinates
cy.scrollTo('50%', '50%');            // Percentage
cy.get('input').focus();
cy.get('input').blur();
Drag & Drop
cy.get('.draggable').trigger('mousedown', { button: 0 });
cy.get('.droppable').trigger('mousemove').trigger('mouseup');

// Or with drag command (requires plugin)
cy.get('.item').drag('.target');
Hover
// Cypress doesn't have native hover
cy.get('button').trigger('mouseover');
cy.get('button').trigger('mouseenter');
cy.get('button').realHover(); // requires cypress-real-events

Assertions

Assertions

Visibility
cy.get('button').should('be.visible');
cy.get('button').should('not.be.visible');
cy.get('button').should('exist');
cy.get('button').should('not.exist');
cy.get('button').should('be.hidden');
Content
cy.get('h1').should('have.text', 'Welcome');
cy.get('h1').should('contain', 'Welcome');
cy.get('h1').should('include.text', 'come');
cy.get('input').should('have.value', 'Hello');
cy.get('div').should('be.empty');
cy.get('div').should('not.be.empty');
Attributes & State
cy.get('input').should('have.attr', 'placeholder');
cy.get('input').should('have.attr', 'type', 'text');
cy.get('a').should('have.attr', 'href', '/home');

cy.get('button').should('be.disabled');
cy.get('button').should('be.enabled');
cy.get('input').should('be.focused');
cy.get('checkbox').should('be.checked');
CSS & Classes
cy.get('div').should('have.class', 'active');
cy.get('div').should('not.have.class', 'hidden');
cy.get('div').should('have.css', 'display', 'flex');
cy.get('div').should('have.css', 'background-color', 'rgb(0, 0, 255)');
Length & Multiple
cy.get('li').should('have.length', 3);
cy.get('li').should('have.length.gt', 2);     // Greater than
cy.get('li').should('have.length.gte', 3);    // Greater or equal
cy.get('li').should('have.length.lt', 5);     // Less than
cy.get('li').should('have.length.lte', 3);    // Less or equal

// Multiple assertions
cy.get('button')
  .should('be.visible')
  .and('be.enabled')
  .and('contain', 'Submit');

Network

Intercept & Stub

Intercept requests
// Intercept and alias
cy.intercept('GET', '/api/users').as('getUsers');
cy.visit('/');
cy.wait('@getUsers');

// Intercept with response stub
cy.intercept('GET', '/api/users', {
  statusCode: 200,
  body: [{ id: 1, name: 'John' }],
}).as('getUsers');
Modify requests
cy.intercept('POST', '/api/login', (req) => {
  // Modify request
  req.headers['Authorization'] = 'Bearer token';
  req.body.extra = 'data';

  // Continue with modified request
  req.continue();
});

cy.intercept('/api/*', (req) => {
  req.reply((res) => {
    // Modify response
    res.body.modified = true;
    res.send();
  });
});
Wait for requests
cy.intercept('GET', '/api/users').as('users');
cy.visit('/');

// Wait and access response
cy.wait('@users').then((interception) => {
  expect(interception.response.statusCode).to.eq(200);
  expect(interception.response.body).to.have.length(3);
});

// Wait multiple times
cy.wait(['@users', '@posts']);
Fixture responses
// cypress/fixtures/users.json
// [{ "id": 1, "name": "John" }]

cy.intercept('GET', '/api/users', {
  fixture: 'users.json',
}).as('getUsers');

// With delay
cy.intercept('GET', '/api/users', {
  fixture: 'users.json',
  delay: 1000,
});

Custom Commands

Custom Commands

Add command
// cypress/support/commands.js
Cypress.Commands.add('login', (email, password) => {
  cy.visit('/login');
  cy.get('[data-cy=email]').type(email);
  cy.get('[data-cy=password]').type(password);
  cy.get('[data-cy=submit]').click();
  cy.url().should('include', '/dashboard');
});

// Usage in test
cy.login('user@example.com', 'password123');
API login command
Cypress.Commands.add('loginByApi', (email, password) => {
  cy.request({
    method: 'POST',
    url: '/api/login',
    body: { email, password },
  }).then((response) => {
    window.localStorage.setItem('token', response.body.token);
  });
});

// Much faster than UI login
cy.loginByApi('user@example.com', 'password');
Overwrite command
Cypress.Commands.overwrite('visit', (originalFn, url, options) => {
  // Add auth header to all visits
  const token = localStorage.getItem('token');
  return originalFn(url, {
    ...options,
    onBeforeLoad(win) {
      win.localStorage.setItem('token', token);
    },
  });
});

Utilities

Utilities

Wait & Timeout
cy.wait(1000);                        // Wait 1 second

// Custom timeout
cy.get('button', { timeout: 10000 }).should('be.visible');

// Retry assertions
cy.get('button')
  .should('be.visible')
  .and('be.enabled');
Browser storage
// Local Storage
localStorage.setItem('key', 'value');
cy.window().then((win) => {
  win.localStorage.setItem('token', 'abc123');
});
cy.clearLocalStorage();

// Cookies
cy.setCookie('name', 'value');
cy.getCookie('name').should('have.property', 'value', 'value');
cy.clearCookies();

// Session Storage
cy.window().then((win) => {
  win.sessionStorage.setItem('key', 'value');
});
Viewport
cy.viewport(1280, 720);
cy.viewport('iphone-x');
cy.viewport('macbook-15');

// Presets: iphone-6, iphone-x, samsung-s10
// ipad-2, macbook-11, macbook-13, macbook-15, macbook-16
Screenshots & Videos
cy.screenshot();                      // Auto-named
cy.screenshot('login-page');          // Named screenshot
cy.screenshot({ capture: 'fullPage' });

// cypress.config.js
module.exports = defineConfig({
  video: true,
  videosFolder: 'cypress/videos',
  screenshotsFolder: 'cypress/screenshots',
});