{{위키데이터 속성 추적}}
{{소프트웨어 정보
| title = Selenium
| name = Selenium
| logo = Selenium logo.svg
| logo size = 180px
| logo alt = 
| logo caption = <!-- Selenium logo -->
| screenshot = Selenium IDE.png
| screenshot size = 
| screenshot alt = 
| caption = <!-- Demonstration of Selenium -->
| collapsible = <!-- yes -->
| author = 
| developer = 
| released = <!-- {{시작 날짜와 나이|YYYY|MM|DD|df=yes/no}} -->
| discontinued = 
| latest release version = 4.11.0
| latest release date = {{시작 날짜와 나이|2023|07|31}}<ref>{{웹 인용|url=https://www.selenium.dev/blog/2023/selenium-4-11-0-released/|title=Selenium 4.11.0 Released!|accessdate=August 2, 2023}}</ref>
| latest preview version = 
| latest preview date = <!-- {{시작 날짜와 나이|YYYY|MM|DD|df=yes/no}} -->
| programming language = [[자바 (프로그래밍 언어)|자바]]
| operating system = [[크로스 플랫폼]]
| platform = 
| size = 
| language = 
| language count = <!-- DO NOT include this parameter unless you know what it does -->
| language footnote = 
| genre = 웹 애플리케이션의 [[소프트웨어 테스트]] 프레임워크
| license = [[아파치 라이선스]] 2.0
| standard = 
| AsOf = 
}}

'''셀레늄'''(Selenium)은 [[웹 애플리케이션]] 자동화 및 테스트를 위한 포터블 [[프레임워크]]이다. 셀레늄은 테스트 스크립트 언어를 학습할 필요 없이 [[기능 테스트]]를 만들기 위한 플레이백 도구를 제공한다. (셀례늄 IDE) [[C 샤프]], [[그루비]], [[자바 (프로그래밍 언어)|자바]], [[펄]], [[PHP]], [[파이썬]], [[루비]], [[스칼라]] 등 수많은 유명 프로그래밍 언어들에서 테스트를 작성하기 위한 테스트 [[도메인 특화 언어]](Selenese)를 제공한다. 이 테스트들은 현대의 대부분의 [[웹 브라우저]]에서 수행이 가능하다. 셀레늄은 [[윈도우]], [[리눅스]], [[macOS]] 플랫폼에서 디플로이된다. [[아파치 2.0 라이선스]]로 배포되는 [[오픈 소스 소프트웨어]]이다. 웹 개발자는 무료로 다운로드, 사용할 수 있다.

== 예시 ==
=====Python=====
<syntaxhighlight lang="python">
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.expected_conditions import presence_of_element_located

#This example requires Selenium WebDriver 3.13 or newer
with webdriver.Firefox() as driver:
    wait = WebDriverWait(driver, 10)
    driver.get("https://google.com/ncr")
    driver.find_element(By.NAME, "q").send_keys("cheese" + Keys.RETURN)
    first_result = wait.until(presence_of_element_located((By.CSS_SELECTOR, "h3")))
    print(first_result.get_attribute("textContent"))
</syntaxhighlight>

=====Java=====
<syntaxhighlight lang="java">
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.WebDriverWait;
import static org.openqa.selenium.support.ui.ExpectedConditions.presenceOfElementLocated;
import java.time.Duration;

public class HelloSelenium {

    public static void main(String[] args) {
        WebDriver driver = new FirefoxDriver();
        WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
        try {
            driver.get("https://google.com/ncr");
            driver.findElement(By.name("q")).sendKeys("cheese" + Keys.ENTER);
            WebElement firstResult = wait.until(presenceOfElementLocated(By.cssSelector("h3")));
            System.out.println(firstResult.getAttribute("textContent"));
        } finally {
            driver.quit();
        }
    }
}
</syntaxhighlight>

=====C#=====
<syntaxhighlight lang="csharp">
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;

class HelloSelenium
{
    static void Main()
    {
        using(IWebDriver driver = new FirefoxDriver())
        {
            WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
            driver.Navigate().GoToUrl("https://www.google.com/ncr");
            driver.FindElement(By.Name("q")).SendKeys("cheese" + Keys.Enter);
            wait.Until(webDriver => webDriver.FindElement(By.CssSelector("h3")).Displayed);
            IWebElement firstResult = driver.FindElement(By.CssSelector("h3"));
            Console.WriteLine(firstResult.GetAttribute("textContent"));
        }
    }
}
  
</syntaxhighlight>
== 같이 보기 ==
* [[인수 검사]]
* [[회귀 테스트]]
== 각주 ==
{{각주}}

== 외부 링크 ==
* {{공식 웹사이트}}

{{전거 통제}}

[[분류:웹 개발 소프트웨어]]
[[분류:유닛 테스트 프레임워크]]
[[분류:부하 테스트 도구]]