Começando Se você é novo no Selenium, nós temos alguns recursos que podem te ajudar a se atualizar imediatamente.
Selenium suporta automação de todos os principais navegadores do mercado
por meio do uso do WebDriver .
WebDriver é uma API e protocolo que define uma interface de linguagem neutra
para controlar o comportamento dos navegadores da web.
Cada navegador é apoiado por uma implementação WebDriver específica, chamada de driver .
O driver é o componente responsável por delegar ao navegador,
e lida com a comunicação de e para o Selenium e o navegador.
Essa separação é parte de um esforço consciente para que os fornecedores de navegadores
assumam a responsabilidade pela implementação de seus navegadores.
Selenium faz uso desses drivers de terceiros sempre que possível,
mas também fornece seus próprios drivers mantidos pelo projeto
para os casos em que isso não é uma realidade.
A estrutura do Selenium une todas essas peças
por meio de uma interface voltada para o usuário que permite aos diferentes back-ends de navegador
serem usados de forma transparente,
permitindo a automação entre navegadores e plataformas cruzadas.
Selenium setup is quite different from the setup of other commercial tools.
Before you can start writing Selenium code, you have to
install the language bindings libraries for your language of choice, the browser you
want to use, and the driver for that browser.
Follow the links below to get up and going with Selenium WebDriver.
If you wish to start with a low-code/record and playback tool, please check
Selenium IDE
Once you get things working, if you want to scale up your tests, check out the
Selenium Grid .
1 - Instalando bibliotecas do Selenium Configurando a biblioteca Selenium para sua linguagem de programação favorita.
Primeiro você precisa instalar as bibliotecas Selenium para seu projeto de automação.
O processo de instalação de bibliotecas depende da linguagem que você escolher usar.
Requisitos por linguagem
Java
Python
CSharp
Ruby
JavaScript
Kotlin Veja a mínima versão do Java suportada aqui .
A instalação da biblioteca Selenium para Java é feita a partir de uma build tool.
Maven Especifique a dependência no pom.xml
do seu projeto.
<details class="mt-3">
<summary>Show full example</summary>
<div class="pt-2">
<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#8f5902;font-style:italic"><?xml version="1.0" encoding="UTF-8"?></span>
<project xmlns= "http://maven.apache.org/POM/4.0.0"
xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation= "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" >
<modelVersion> 4.0.0</modelVersion>
<groupId> dev.selenium</groupId>
<artifactId> selenium-examples</artifactId>
<version> 1.0.0</version>
<properties>
<surefire.parallel> 1</surefire.parallel>
<maven.compiler.source> 17</maven.compiler.source>
<maven.compiler.target> 17</maven.compiler.target>
<project.build.sourceEncoding> UTF-8</project.build.sourceEncoding>
<selenium.version> 4.31.0</selenium.version>
</properties>
<repositories>
<repository>
<id> sonatype-nexus-snapshots</id>
<url> https://oss.sonatype.org/content/repositories/snapshots/ </url>
<snapshots>
<enabled> true</enabled>
</snapshots>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId> org.seleniumhq.selenium</groupId>
<artifactId> selenium-java</artifactId>
<version> ${selenium.version}</version>
</dependency>
<dependency>
<groupId> org.seleniumhq.selenium</groupId>
<artifactId> selenium-grid</artifactId>
<version> ${selenium.version}</version>
</dependency>
<dependency>
<groupId> org.junit.jupiter</groupId>
<artifactId> junit-jupiter-engine</artifactId>
<version> 5.12.1</version>
<scope> test</scope>
</dependency>
<dependency>
<groupId> com.titusfortner</groupId>
<artifactId> selenium-logger</artifactId>
<version> 2.4.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId> org.apache.maven.plugins</groupId>
<artifactId> maven-surefire-plugin</artifactId>
<version> 3.5.3</version>
<configuration>
<properties>
<configurationParameters>
junit.jupiter.execution.parallel.enabled = true
junit.jupiter.execution.parallel.mode.default = concurrent
junit.jupiter.execution.parallel.config.strategy = fixed
junit.jupiter.execution.parallel.config.fixed.parallelism = ${surefire.parallel}
junit.jupiter.execution.parallel.config.fixed.max-pool-size = ${surefire.parallel}
</configurationParameters>
</properties>
<rerunFailingTestsCount> 3</rerunFailingTestsCount>
</configuration>
</plugin>
</plugins>
</build>
</project>
<div class="text-end pb-2 mt-2">
<a href="https://github.com/SeleniumHQ/seleniumhq.github.io/blob/display_full/examples/java/pom.xml#L30-L34" target="_blank">
<i class="fas fa-external-link-alt pl-2"></i>
<strong>View full example on GitHub</strong>
</a>
</div>
Gradle Especifique a dependência no build.gradle
do seu projeto como testImplementation
:
<details class="mt-3">
<summary>Show full example</summary>
<div class="pt-2">
<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-gradle" data-lang="gradle"><span style="display:flex;"><span><span style="color:#000">plugins</span> <span style="color:#ce5c00;font-weight:bold">{</span>
id 'java'
}
group 'dev.selenium'
version '1.0-SNAPSHOT'
repositories {
mavenCentral ()
}
dependencies {
testImplementation 'org.seleniumhq.selenium:selenium-java:4.31.0'
testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.12.1'
}
test {
useJUnitPlatform ()
}
<div class="text-end pb-2 mt-2">
<a href="https://github.com/SeleniumHQ/seleniumhq.github.io/blob/display_full/examples/java/build.gradle#L13-L14" target="_blank">
<i class="fas fa-external-link-alt pl-2"></i>
<strong>View full example on GitHub</strong>
</a>
</div>
A mínima versão suportada do Python para cada versão do Selenium pode ser encontrada
em “Supported Python Versions” no PyPi .
Existe muitas formas diferentes de instalar Selenium.
Pip Download Como uma alternativa você pode baixar o código fonte PyPI
(selenium-x.x.x.-py3-none-any.whl) e instalar usando pip :
pip install selenium-x.x.x.-py3-none-any.whl
Exigir em um projeto Para usar em um projeto, adicione no arquivo requirements.txt
.
<details class="mt-3">
<summary>Show full example</summary>
<div class="pt-2">
<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-txt" data-lang="txt"><span style="display:flex;"><span>selenium==4.31.0
pytest==8.3.5
trio==0.29.0
pytest-trio==0.8.0
pytest-rerunfailures==15.0
flake8==7.2.0
requests==2.32.3
<div class="text-end pb-2 mt-2">
<a href="https://github.com/SeleniumHQ/seleniumhq.github.io/blob/display_full/examples/python/requirements.txt#L1" target="_blank">
<i class="fas fa-external-link-alt pl-2"></i>
<strong>View full example on GitHub</strong>
</a>
</div>
Uma lista com todos os frameworks suportados para cada versão do Selenium
pode ser encontrada em Nuget
Existe algumas opções para instalar o Selenium.
Packet Manager Install-Package Selenium.WebDriver
.NET CLI dotnet add package Selenium.WebDriver
CSProj No arquivo csproj
do seu projeto, especifique a dependência como PackageReference
no ItemGroup
:
<details class="mt-3">
<summary>Show full example</summary>
<div class="pt-2">
<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-csproj" data-lang="csproj"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold"><Project</span> <span style="color:#c4a000">Sdk=</span><span style="color:#4e9a06">"Microsoft.NET.Sdk"</span><span style="color:#204a87;font-weight:bold">></span>
<PropertyGroup>
<TargetFramework> net8.0</TargetFramework>
<GenerateProgramFile> false</GenerateProgramFile>
</PropertyGroup>
<ItemGroup>
<PackageReference Include= "Microsoft.NET.Test.Sdk" Version= "17.11.1" />
<PackageReference Include= "Microsoft.IdentityModel.Tokens" Version= "7.7.1" />
<PackageReference Include= "MSTest.TestAdapter" Version= "3.6.0" />
<PackageReference Include= "MSTest.TestFramework" Version= "3.6.0" />
<PackageReference Include= "Selenium.Support" Version= "4.31.0" />
<PackageReference Include= "Selenium.WebDriver" Version= "4.31.0" />
</ItemGroup>
<ItemGroup>
<Folder Include= "LocalPackages" />
</ItemGroup>
</Project>
<div class="text-end pb-2 mt-2">
<a href="https://github.com/SeleniumHQ/seleniumhq.github.io/blob/display_full/examples/dotnet/SeleniumDocs/SeleniumDocs.csproj#L14" target="_blank">
<i class="fas fa-external-link-alt pl-2"></i>
<strong>View full example on GitHub</strong>
</a>
</div>
Considerações adicionais Outras observações para usar o Visual Studio Code (vscode) e C#
Instale a versão compatível do .NET SDK conforme a seção acima.
Instale também as extensões do vscode (Ctrl-Shift-X) para C# e NuGet.
Siga as instruções aqui para criar e rodar o seu projeto de “Hello World” no console usando C#.
Você também pode criar um projeto inicial do NUnit usando a linha de comando dotnet new NUnit
.
Certifique-se de que o arquivo %appdata%\NuGet\nuget.config
esteja configurado corretamente, pois alguns desenvolvedores relataram que ele estará vazio devido a alguns problemas.
Se o nuget.config
estiver vazio ou não estiver configurado corretamente, as compilações .NET falharão para projetos que estiverem usando Selenium.
Adicione a seguinte seção ao arquivo nuget.config
se esse estiver vazio:
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
</packageSources>
...
Para mais informações sobre nuget.config
clique aqui .
Você pode ter que customizar nuget.config
para atender às suas necessidades.
Agora, volte para o vscode, aperte Ctrl-Shift-P, e digite “NuGet Add Package”, e adicione os pacotes necessários para
o Selenium como o Selenium.WebDriver
.
Aperte Enter e selecione a versão.
Agora você pode usar os exemplos da documentação relacionados ao C# com o vscode.
Você pode ver a minima versão suportada do Ruby para cada versão do Selenium em
rubygems.org
O Selenium pode ser instalado de duas formas diferentes.
Instalação manual gem install selenium-webdriver
Adicione para o gemfile do projeto <details class="mt-3">
<summary>Show full example</summary>
<div class="pt-2">
<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-Gemfile" data-lang="Gemfile"><span style="display:flex;"><span><span style="color:#8f5902;font-style:italic"># frozen_string_literal: true</span>
source 'https://rubygems.org'
gem 'ffi' , '~> 1.15' , '>= 1.15.5' if Gem . win_platform? # Windows only
gem 'rake' , '~> 13.0'
gem 'rspec' , '~> 3.0'
gem 'rubocop' , '~> 1.35'
gem 'rubocop-rspec' , '~> 3.0'
gem 'selenium-devtools' , '= 0.135.0'
gem 'selenium-webdriver' , '= 4.31.0'
<div class="text-end pb-2 mt-2">
<a href="https://github.com/SeleniumHQ/seleniumhq.github.io/blob/display_full/examples/ruby/Gemfile#L10" target="_blank">
<i class="fas fa-external-link-alt pl-2"></i>
<strong>View full example on GitHub</strong>
</a>
</div>
Você pode encontrar a mínima versão suportada do Node para cada versão do Selenium
na seção Node Support Policy
no site npmjs
Selenium é normalmente instalado usando npm.
Instalação local npm install selenium-webdriver
Adicione ao seu projeto No package.json
do seu projeto, adicione os requisitos em dependencies
:
<details class="mt-3">
<summary>Show full example</summary>
<div class="pt-2">
<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-json" data-lang="json"><span style="display:flex;"><span><span style="color:#000;font-weight:bold">{</span>
"name" : "javascript-examples" ,
"version" : "1.0.0" ,
"scripts" : {
"test" : "npx mocha test/**/*.spec.js –timeout 90000"
},
"author" : "The Selenium project" ,
"license" : "Apache-2.0" ,
"dependencies" : {
"assert" : "2.1.0" ,
"selenium-webdriver" : "4.31.0"
},
"devDependencies" : {
"mocha" : "11.1.0"
}
}
<div class="text-end pb-2 mt-2">
<a href="https://github.com/SeleniumHQ/seleniumhq.github.io/blob/display_full/examples/javascript/package.json#L14" target="_blank">
<i class="fas fa-external-link-alt pl-2"></i>
<strong>View full example on GitHub</strong>
</a>
</div>
Use as ligações Java para Kotlin.
Próximo passo Programando o seu primeiro script Selenium
2 - Programe o seu primeiro script Selenium Instruções passo a passo para programar um script Selenium
Assim que você tiver o Selenium instalado ,
você estará pronto para programar códigos Selenium.
Oito Componentes Básicos Tudo que o Selenium faz é enviar comandos ao navegador de internet para fazer algo ou solicitar informações dele.
A maior parte do que você irá fazer com o Selenium é uma combinação desses comandos básicos.
Click on the link to “View full example on GitHub” to see the code in context.
1. Iniciando uma sessão Para ter mais detalhes sobre como iniciar uma sessão, leia nossa documentação em driver sessions
Java
Python
CSharp
Ruby
JavaScript
Kotlin Show full example package dev.selenium.getting_started ;
import org.openqa.selenium.By ;
import org.openqa.selenium.WebDriver ;
import org.openqa.selenium.WebElement ;
import org.openqa.selenium.chrome.ChromeDriver ;
import java.time.Duration ;
public class FirstScript {
public static void main ( String [] args ) {
WebDriver driver = new ChromeDriver ();
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" );
driver . getTitle ();
driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 ));
WebElement textBox = driver . findElement ( By . name ( "my-text" ));
WebElement submitButton = driver . findElement ( By . cssSelector ( "button" ));
textBox . sendKeys ( "Selenium" );
submitButton . click ();
WebElement message = driver . findElement ( By . id ( "message" ));
message . getText ();
driver . quit ();
}
}
Show full example from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver . Chrome ()
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" )
title = driver . title
driver . implicitly_wait ( 0.5 )
text_box = driver . find_element ( by = By . NAME , value = "my-text" )
submit_button = driver . find_element ( by = By . CSS_SELECTOR , value = "button" )
text_box . send_keys ( "Selenium" )
submit_button . click ()
message = driver . find_element ( by = By . ID , value = "message" )
text = message . text
driver . quit ()
Show full example using System ;
using OpenQA.Selenium ;
using OpenQA.Selenium.Chrome ;
namespace SeleniumDocs.GettingStarted ;
public static class FirstScript
{
public static void Main ()
{
IWebDriver driver = new ChromeDriver ();
driver . Navigate (). GoToUrl ( "https://www.selenium.dev/selenium/web/web-form.html" );
var title = driver . Title ;
driver . Manage (). Timeouts (). ImplicitWait = TimeSpan . FromMilliseconds ( 500 );
var textBox = driver . FindElement ( By . Name ( "my-text" ));
var submitButton = driver . FindElement ( By . TagName ( "button" ));
textBox . SendKeys ( "Selenium" );
submitButton . Click ();
var message = driver . FindElement ( By . Id ( "message" ));
var value = message . Text ;
driver . Quit ();
}
}
Show full example require 'selenium-webdriver'
driver = Selenium :: WebDriver . for :chrome
driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' )
driver . title
driver . manage . timeouts . implicit_wait = 500
text_box = driver . find_element ( name : 'my-text' )
submit_button = driver . find_element ( tag_name : 'button' )
text_box . send_keys ( 'Selenium' )
submit_button . click
message = driver . find_element ( id : 'message' )
message . text
driver . quit
Show full example const { By , Builder , Browser } = require ( 'selenium-webdriver' );
const assert = require ( "assert" );
( async function firstTest () {
let driver ;
try {
driver = await new Builder (). forBrowser ( Browser . CHROME ). build ();
await driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' );
let title = await driver . getTitle ();
assert . equal ( "Web form" , title );
await driver . manage (). setTimeouts ({ implicit : 500 });
let textBox = await driver . findElement ( By . name ( 'my-text' ));
let submitButton = await driver . findElement ( By . css ( 'button' ));
await textBox . sendKeys ( 'Selenium' );
await submitButton . click ();
let message = await driver . findElement ( By . id ( 'message' ));
let value = await message . getText ();
assert . equal ( "Received!" , value );
} catch ( e ) {
console . log ( e )
} finally {
await driver . quit ();
}
}())
Show full example package dev.selenium.getting_started
import org.junit.jupiter.api.*
import org.junit.jupiter.api.Assertions.assertEquals
import org.openqa.selenium.By
import org.openqa.selenium.WebDriver
import org.openqa.selenium.chrome.ChromeDriver
import java.time.Duration
@TestInstance ( TestInstance . Lifecycle . PER_CLASS )
class FirstScriptTest {
private lateinit var driver : WebDriver
@Test
fun eightComponents () {
driver = ChromeDriver ()
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" )
val title = driver . title
assertEquals ( "Web form" , title )
driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 ))
var textBox = driver . findElement ( By . name ( "my-text" ))
val submitButton = driver . findElement ( By . cssSelector ( "button" ))
textBox . sendKeys ( "Selenium" )
submitButton . click ()
val message = driver . findElement ( By . id ( "message" ))
val value = message . getText ()
assertEquals ( "Received!" , value )
driver . quit ()
}
}
2. Agindo no navegador de internet Nesse exemplo estamos navegando para uma página web.
Java
Python
CSharp
Ruby
JavaScript
Kotlin Show full example package dev.selenium.getting_started ;
import org.openqa.selenium.By ;
import org.openqa.selenium.WebDriver ;
import org.openqa.selenium.WebElement ;
import org.openqa.selenium.chrome.ChromeDriver ;
import java.time.Duration ;
public class FirstScript {
public static void main ( String [] args ) {
WebDriver driver = new ChromeDriver ();
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" );
driver . getTitle ();
driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 ));
WebElement textBox = driver . findElement ( By . name ( "my-text" ));
WebElement submitButton = driver . findElement ( By . cssSelector ( "button" ));
textBox . sendKeys ( "Selenium" );
submitButton . click ();
WebElement message = driver . findElement ( By . id ( "message" ));
message . getText ();
driver . quit ();
}
}
Show full example from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver . Chrome ()
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" )
title = driver . title
driver . implicitly_wait ( 0.5 )
text_box = driver . find_element ( by = By . NAME , value = "my-text" )
submit_button = driver . find_element ( by = By . CSS_SELECTOR , value = "button" )
text_box . send_keys ( "Selenium" )
submit_button . click ()
message = driver . find_element ( by = By . ID , value = "message" )
text = message . text
driver . quit ()
Show full example using System ;
using OpenQA.Selenium ;
using OpenQA.Selenium.Chrome ;
namespace SeleniumDocs.GettingStarted ;
public static class FirstScript
{
public static void Main ()
{
IWebDriver driver = new ChromeDriver ();
driver . Navigate (). GoToUrl ( "https://www.selenium.dev/selenium/web/web-form.html" );
var title = driver . Title ;
driver . Manage (). Timeouts (). ImplicitWait = TimeSpan . FromMilliseconds ( 500 );
var textBox = driver . FindElement ( By . Name ( "my-text" ));
var submitButton = driver . FindElement ( By . TagName ( "button" ));
textBox . SendKeys ( "Selenium" );
submitButton . Click ();
var message = driver . FindElement ( By . Id ( "message" ));
var value = message . Text ;
driver . Quit ();
}
}
Show full example require 'selenium-webdriver'
driver = Selenium :: WebDriver . for :chrome
driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' )
driver . title
driver . manage . timeouts . implicit_wait = 500
text_box = driver . find_element ( name : 'my-text' )
submit_button = driver . find_element ( tag_name : 'button' )
text_box . send_keys ( 'Selenium' )
submit_button . click
message = driver . find_element ( id : 'message' )
message . text
driver . quit
Show full example const { By , Builder , Browser } = require ( 'selenium-webdriver' );
const assert = require ( "assert" );
( async function firstTest () {
let driver ;
try {
driver = await new Builder (). forBrowser ( Browser . CHROME ). build ();
await driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' );
let title = await driver . getTitle ();
assert . equal ( "Web form" , title );
await driver . manage (). setTimeouts ({ implicit : 500 });
let textBox = await driver . findElement ( By . name ( 'my-text' ));
let submitButton = await driver . findElement ( By . css ( 'button' ));
await textBox . sendKeys ( 'Selenium' );
await submitButton . click ();
let message = await driver . findElement ( By . id ( 'message' ));
let value = await message . getText ();
assert . equal ( "Received!" , value );
} catch ( e ) {
console . log ( e )
} finally {
await driver . quit ();
}
}())
Show full example package dev.selenium.getting_started
import org.junit.jupiter.api.*
import org.junit.jupiter.api.Assertions.assertEquals
import org.openqa.selenium.By
import org.openqa.selenium.WebDriver
import org.openqa.selenium.chrome.ChromeDriver
import java.time.Duration
@TestInstance ( TestInstance . Lifecycle . PER_CLASS )
class FirstScriptTest {
private lateinit var driver : WebDriver
@Test
fun eightComponents () {
driver = ChromeDriver ()
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" )
val title = driver . title
assertEquals ( "Web form" , title )
driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 ))
var textBox = driver . findElement ( By . name ( "my-text" ))
val submitButton = driver . findElement ( By . cssSelector ( "button" ))
textBox . sendKeys ( "Selenium" )
submitButton . click ()
val message = driver . findElement ( By . id ( "message" ))
val value = message . getText ()
assertEquals ( "Received!" , value )
driver . quit ()
}
}
Existem diversos tipos de informação sobre o navegador de internet que você
pode solicitar, incluindo window handles, tamanho / posição do navegador, cookies, alertas e etc.
Java
Python
CSharp
Ruby
JavaScript
Kotlin Show full example package dev.selenium.getting_started ;
import org.openqa.selenium.By ;
import org.openqa.selenium.WebDriver ;
import org.openqa.selenium.WebElement ;
import org.openqa.selenium.chrome.ChromeDriver ;
import java.time.Duration ;
public class FirstScript {
public static void main ( String [] args ) {
WebDriver driver = new ChromeDriver ();
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" );
driver . getTitle ();
driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 ));
WebElement textBox = driver . findElement ( By . name ( "my-text" ));
WebElement submitButton = driver . findElement ( By . cssSelector ( "button" ));
textBox . sendKeys ( "Selenium" );
submitButton . click ();
WebElement message = driver . findElement ( By . id ( "message" ));
message . getText ();
driver . quit ();
}
}
Show full example from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver . Chrome ()
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" )
title = driver . title
driver . implicitly_wait ( 0.5 )
text_box = driver . find_element ( by = By . NAME , value = "my-text" )
submit_button = driver . find_element ( by = By . CSS_SELECTOR , value = "button" )
text_box . send_keys ( "Selenium" )
submit_button . click ()
message = driver . find_element ( by = By . ID , value = "message" )
text = message . text
driver . quit ()
Show full example using System ;
using OpenQA.Selenium ;
using OpenQA.Selenium.Chrome ;
namespace SeleniumDocs.GettingStarted ;
public static class FirstScript
{
public static void Main ()
{
IWebDriver driver = new ChromeDriver ();
driver . Navigate (). GoToUrl ( "https://www.selenium.dev/selenium/web/web-form.html" );
var title = driver . Title ;
driver . Manage (). Timeouts (). ImplicitWait = TimeSpan . FromMilliseconds ( 500 );
var textBox = driver . FindElement ( By . Name ( "my-text" ));
var submitButton = driver . FindElement ( By . TagName ( "button" ));
textBox . SendKeys ( "Selenium" );
submitButton . Click ();
var message = driver . FindElement ( By . Id ( "message" ));
var value = message . Text ;
driver . Quit ();
}
}
Show full example require 'selenium-webdriver'
driver = Selenium :: WebDriver . for :chrome
driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' )
driver . title
driver . manage . timeouts . implicit_wait = 500
text_box = driver . find_element ( name : 'my-text' )
submit_button = driver . find_element ( tag_name : 'button' )
text_box . send_keys ( 'Selenium' )
submit_button . click
message = driver . find_element ( id : 'message' )
message . text
driver . quit
Show full example const { By , Builder , Browser } = require ( 'selenium-webdriver' );
const assert = require ( "assert" );
( async function firstTest () {
let driver ;
try {
driver = await new Builder (). forBrowser ( Browser . CHROME ). build ();
await driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' );
let title = await driver . getTitle ();
assert . equal ( "Web form" , title );
await driver . manage (). setTimeouts ({ implicit : 500 });
let textBox = await driver . findElement ( By . name ( 'my-text' ));
let submitButton = await driver . findElement ( By . css ( 'button' ));
await textBox . sendKeys ( 'Selenium' );
await submitButton . click ();
let message = await driver . findElement ( By . id ( 'message' ));
let value = await message . getText ();
assert . equal ( "Received!" , value );
} catch ( e ) {
console . log ( e )
} finally {
await driver . quit ();
}
}())
Show full example package dev.selenium.getting_started
import org.junit.jupiter.api.*
import org.junit.jupiter.api.Assertions.assertEquals
import org.openqa.selenium.By
import org.openqa.selenium.WebDriver
import org.openqa.selenium.chrome.ChromeDriver
import java.time.Duration
@TestInstance ( TestInstance . Lifecycle . PER_CLASS )
class FirstScriptTest {
private lateinit var driver : WebDriver
@Test
fun eightComponents () {
driver = ChromeDriver ()
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" )
val title = driver . title
assertEquals ( "Web form" , title )
driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 ))
var textBox = driver . findElement ( By . name ( "my-text" ))
val submitButton = driver . findElement ( By . cssSelector ( "button" ))
textBox . sendKeys ( "Selenium" )
submitButton . click ()
val message = driver . findElement ( By . id ( "message" ))
val value = message . getText ()
assertEquals ( "Received!" , value )
driver . quit ()
}
}
4. Estabelecendo uma Estratégia de Espera Sincronizar o código ao estado atual do navegador é um dos maiores
desafios
quando se trabalha com o Selenium, fazer isso de maneira bem feita é um tópico avançado.
Essencialmente, você quer ter certeza absoluta de que o elemento está na página antes de tentar localizá-lo
e o elemento está em um estado interativo antes de você tentar interagir com ele.
Uma espera implícita raramente é a melhor solução, mas é a mais fácil de demonstrar aqui, então
vamos usá-la como um substituto.
Leia mais sobre Estratégias de espera .
Java
Python
CSharp
Ruby
JavaScript
Kotlin Show full example package dev.selenium.getting_started ;
import org.openqa.selenium.By ;
import org.openqa.selenium.WebDriver ;
import org.openqa.selenium.WebElement ;
import org.openqa.selenium.chrome.ChromeDriver ;
import java.time.Duration ;
public class FirstScript {
public static void main ( String [] args ) {
WebDriver driver = new ChromeDriver ();
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" );
driver . getTitle ();
driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 ));
WebElement textBox = driver . findElement ( By . name ( "my-text" ));
WebElement submitButton = driver . findElement ( By . cssSelector ( "button" ));
textBox . sendKeys ( "Selenium" );
submitButton . click ();
WebElement message = driver . findElement ( By . id ( "message" ));
message . getText ();
driver . quit ();
}
}
Show full example from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver . Chrome ()
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" )
title = driver . title
driver . implicitly_wait ( 0.5 )
text_box = driver . find_element ( by = By . NAME , value = "my-text" )
submit_button = driver . find_element ( by = By . CSS_SELECTOR , value = "button" )
text_box . send_keys ( "Selenium" )
submit_button . click ()
message = driver . find_element ( by = By . ID , value = "message" )
text = message . text
driver . quit ()
Show full example using System ;
using OpenQA.Selenium ;
using OpenQA.Selenium.Chrome ;
namespace SeleniumDocs.GettingStarted ;
public static class FirstScript
{
public static void Main ()
{
IWebDriver driver = new ChromeDriver ();
driver . Navigate (). GoToUrl ( "https://www.selenium.dev/selenium/web/web-form.html" );
var title = driver . Title ;
driver . Manage (). Timeouts (). ImplicitWait = TimeSpan . FromMilliseconds ( 500 );
var textBox = driver . FindElement ( By . Name ( "my-text" ));
var submitButton = driver . FindElement ( By . TagName ( "button" ));
textBox . SendKeys ( "Selenium" );
submitButton . Click ();
var message = driver . FindElement ( By . Id ( "message" ));
var value = message . Text ;
driver . Quit ();
}
}
Show full example require 'selenium-webdriver'
driver = Selenium :: WebDriver . for :chrome
driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' )
driver . title
driver . manage . timeouts . implicit_wait = 500
text_box = driver . find_element ( name : 'my-text' )
submit_button = driver . find_element ( tag_name : 'button' )
text_box . send_keys ( 'Selenium' )
submit_button . click
message = driver . find_element ( id : 'message' )
message . text
driver . quit
Show full example const { By , Builder , Browser } = require ( 'selenium-webdriver' );
const assert = require ( "assert" );
( async function firstTest () {
let driver ;
try {
driver = await new Builder (). forBrowser ( Browser . CHROME ). build ();
await driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' );
let title = await driver . getTitle ();
assert . equal ( "Web form" , title );
await driver . manage (). setTimeouts ({ implicit : 500 });
let textBox = await driver . findElement ( By . name ( 'my-text' ));
let submitButton = await driver . findElement ( By . css ( 'button' ));
await textBox . sendKeys ( 'Selenium' );
await submitButton . click ();
let message = await driver . findElement ( By . id ( 'message' ));
let value = await message . getText ();
assert . equal ( "Received!" , value );
} catch ( e ) {
console . log ( e )
} finally {
await driver . quit ();
}
}())
Show full example package dev.selenium.getting_started
import org.junit.jupiter.api.*
import org.junit.jupiter.api.Assertions.assertEquals
import org.openqa.selenium.By
import org.openqa.selenium.WebDriver
import org.openqa.selenium.chrome.ChromeDriver
import java.time.Duration
@TestInstance ( TestInstance . Lifecycle . PER_CLASS )
class FirstScriptTest {
private lateinit var driver : WebDriver
@Test
fun eightComponents () {
driver = ChromeDriver ()
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" )
val title = driver . title
assertEquals ( "Web form" , title )
driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 ))
var textBox = driver . findElement ( By . name ( "my-text" ))
val submitButton = driver . findElement ( By . cssSelector ( "button" ))
textBox . sendKeys ( "Selenium" )
submitButton . click ()
val message = driver . findElement ( By . id ( "message" ))
val value = message . getText ()
assertEquals ( "Received!" , value )
driver . quit ()
}
}
5. Encontrando um elemento A maioria dos comandos na maior parte das sessões do Selenium são relacionados a elementos e você não pode
interagir
com um sem o primeiro encontrando um elemento
Java
Python
CSharp
Ruby
JavaScript
Kotlin Show full example package dev.selenium.getting_started ;
import org.openqa.selenium.By ;
import org.openqa.selenium.WebDriver ;
import org.openqa.selenium.WebElement ;
import org.openqa.selenium.chrome.ChromeDriver ;
import java.time.Duration ;
public class FirstScript {
public static void main ( String [] args ) {
WebDriver driver = new ChromeDriver ();
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" );
driver . getTitle ();
driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 ));
WebElement textBox = driver . findElement ( By . name ( "my-text" ));
WebElement submitButton = driver . findElement ( By . cssSelector ( "button" ));
textBox . sendKeys ( "Selenium" );
submitButton . click ();
WebElement message = driver . findElement ( By . id ( "message" ));
message . getText ();
driver . quit ();
}
}
Show full example from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver . Chrome ()
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" )
title = driver . title
driver . implicitly_wait ( 0.5 )
text_box = driver . find_element ( by = By . NAME , value = "my-text" )
submit_button = driver . find_element ( by = By . CSS_SELECTOR , value = "button" )
text_box . send_keys ( "Selenium" )
submit_button . click ()
message = driver . find_element ( by = By . ID , value = "message" )
text = message . text
driver . quit ()
Show full example using System ;
using OpenQA.Selenium ;
using OpenQA.Selenium.Chrome ;
namespace SeleniumDocs.GettingStarted ;
public static class FirstScript
{
public static void Main ()
{
IWebDriver driver = new ChromeDriver ();
driver . Navigate (). GoToUrl ( "https://www.selenium.dev/selenium/web/web-form.html" );
var title = driver . Title ;
driver . Manage (). Timeouts (). ImplicitWait = TimeSpan . FromMilliseconds ( 500 );
var textBox = driver . FindElement ( By . Name ( "my-text" ));
var submitButton = driver . FindElement ( By . TagName ( "button" ));
textBox . SendKeys ( "Selenium" );
submitButton . Click ();
var message = driver . FindElement ( By . Id ( "message" ));
var value = message . Text ;
driver . Quit ();
}
}
Show full example require 'selenium-webdriver'
driver = Selenium :: WebDriver . for :chrome
driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' )
driver . title
driver . manage . timeouts . implicit_wait = 500
text_box = driver . find_element ( name : 'my-text' )
submit_button = driver . find_element ( tag_name : 'button' )
text_box . send_keys ( 'Selenium' )
submit_button . click
message = driver . find_element ( id : 'message' )
message . text
driver . quit
Show full example const { By , Builder , Browser } = require ( 'selenium-webdriver' );
const assert = require ( "assert" );
( async function firstTest () {
let driver ;
try {
driver = await new Builder (). forBrowser ( Browser . CHROME ). build ();
await driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' );
let title = await driver . getTitle ();
assert . equal ( "Web form" , title );
await driver . manage (). setTimeouts ({ implicit : 500 });
let textBox = await driver . findElement ( By . name ( 'my-text' ));
let submitButton = await driver . findElement ( By . css ( 'button' ));
await textBox . sendKeys ( 'Selenium' );
await submitButton . click ();
let message = await driver . findElement ( By . id ( 'message' ));
let value = await message . getText ();
assert . equal ( "Received!" , value );
} catch ( e ) {
console . log ( e )
} finally {
await driver . quit ();
}
}())
Show full example package dev.selenium.getting_started
import org.junit.jupiter.api.*
import org.junit.jupiter.api.Assertions.assertEquals
import org.openqa.selenium.By
import org.openqa.selenium.WebDriver
import org.openqa.selenium.chrome.ChromeDriver
import java.time.Duration
@TestInstance ( TestInstance . Lifecycle . PER_CLASS )
class FirstScriptTest {
private lateinit var driver : WebDriver
@Test
fun eightComponents () {
driver = ChromeDriver ()
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" )
val title = driver . title
assertEquals ( "Web form" , title )
driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 ))
var textBox = driver . findElement ( By . name ( "my-text" ))
val submitButton = driver . findElement ( By . cssSelector ( "button" ))
textBox . sendKeys ( "Selenium" )
submitButton . click ()
val message = driver . findElement ( By . id ( "message" ))
val value = message . getText ()
assertEquals ( "Received!" , value )
driver . quit ()
}
}
6. Agindo no elemento Há apenas um punhado de ações a serem executadas em um elemento ,
mas você irá usá-las com frequência.
Java
Python
CSharp
Ruby
JavaScript
Kotlin Show full example package dev.selenium.getting_started ;
import org.openqa.selenium.By ;
import org.openqa.selenium.WebDriver ;
import org.openqa.selenium.WebElement ;
import org.openqa.selenium.chrome.ChromeDriver ;
import java.time.Duration ;
public class FirstScript {
public static void main ( String [] args ) {
WebDriver driver = new ChromeDriver ();
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" );
driver . getTitle ();
driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 ));
WebElement textBox = driver . findElement ( By . name ( "my-text" ));
WebElement submitButton = driver . findElement ( By . cssSelector ( "button" ));
textBox . sendKeys ( "Selenium" );
submitButton . click ();
WebElement message = driver . findElement ( By . id ( "message" ));
message . getText ();
driver . quit ();
}
}
Show full example from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver . Chrome ()
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" )
title = driver . title
driver . implicitly_wait ( 0.5 )
text_box = driver . find_element ( by = By . NAME , value = "my-text" )
submit_button = driver . find_element ( by = By . CSS_SELECTOR , value = "button" )
text_box . send_keys ( "Selenium" )
submit_button . click ()
message = driver . find_element ( by = By . ID , value = "message" )
text = message . text
driver . quit ()
Show full example using System ;
using OpenQA.Selenium ;
using OpenQA.Selenium.Chrome ;
namespace SeleniumDocs.GettingStarted ;
public static class FirstScript
{
public static void Main ()
{
IWebDriver driver = new ChromeDriver ();
driver . Navigate (). GoToUrl ( "https://www.selenium.dev/selenium/web/web-form.html" );
var title = driver . Title ;
driver . Manage (). Timeouts (). ImplicitWait = TimeSpan . FromMilliseconds ( 500 );
var textBox = driver . FindElement ( By . Name ( "my-text" ));
var submitButton = driver . FindElement ( By . TagName ( "button" ));
textBox . SendKeys ( "Selenium" );
submitButton . Click ();
var message = driver . FindElement ( By . Id ( "message" ));
var value = message . Text ;
driver . Quit ();
}
}
Show full example require 'selenium-webdriver'
driver = Selenium :: WebDriver . for :chrome
driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' )
driver . title
driver . manage . timeouts . implicit_wait = 500
text_box = driver . find_element ( name : 'my-text' )
submit_button = driver . find_element ( tag_name : 'button' )
text_box . send_keys ( 'Selenium' )
submit_button . click
message = driver . find_element ( id : 'message' )
message . text
driver . quit
Show full example const { By , Builder , Browser } = require ( 'selenium-webdriver' );
const assert = require ( "assert" );
( async function firstTest () {
let driver ;
try {
driver = await new Builder (). forBrowser ( Browser . CHROME ). build ();
await driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' );
let title = await driver . getTitle ();
assert . equal ( "Web form" , title );
await driver . manage (). setTimeouts ({ implicit : 500 });
let textBox = await driver . findElement ( By . name ( 'my-text' ));
let submitButton = await driver . findElement ( By . css ( 'button' ));
await textBox . sendKeys ( 'Selenium' );
await submitButton . click ();
let message = await driver . findElement ( By . id ( 'message' ));
let value = await message . getText ();
assert . equal ( "Received!" , value );
} catch ( e ) {
console . log ( e )
} finally {
await driver . quit ();
}
}())
Show full example package dev.selenium.getting_started
import org.junit.jupiter.api.*
import org.junit.jupiter.api.Assertions.assertEquals
import org.openqa.selenium.By
import org.openqa.selenium.WebDriver
import org.openqa.selenium.chrome.ChromeDriver
import java.time.Duration
@TestInstance ( TestInstance . Lifecycle . PER_CLASS )
class FirstScriptTest {
private lateinit var driver : WebDriver
@Test
fun eightComponents () {
driver = ChromeDriver ()
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" )
val title = driver . title
assertEquals ( "Web form" , title )
driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 ))
var textBox = driver . findElement ( By . name ( "my-text" ))
val submitButton = driver . findElement ( By . cssSelector ( "button" ))
textBox . sendKeys ( "Selenium" )
submitButton . click ()
val message = driver . findElement ( By . id ( "message" ))
val value = message . getText ()
assertEquals ( "Received!" , value )
driver . quit ()
}
}
Elementos podem guardar muitas informações que podem ser solicitadas .
Java
Python
CSharp
Ruby
JavaScript
Kotlin Show full example package dev.selenium.getting_started ;
import org.openqa.selenium.By ;
import org.openqa.selenium.WebDriver ;
import org.openqa.selenium.WebElement ;
import org.openqa.selenium.chrome.ChromeDriver ;
import java.time.Duration ;
public class FirstScript {
public static void main ( String [] args ) {
WebDriver driver = new ChromeDriver ();
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" );
driver . getTitle ();
driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 ));
WebElement textBox = driver . findElement ( By . name ( "my-text" ));
WebElement submitButton = driver . findElement ( By . cssSelector ( "button" ));
textBox . sendKeys ( "Selenium" );
submitButton . click ();
WebElement message = driver . findElement ( By . id ( "message" ));
message . getText ();
driver . quit ();
}
}
Show full example from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver . Chrome ()
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" )
title = driver . title
driver . implicitly_wait ( 0.5 )
text_box = driver . find_element ( by = By . NAME , value = "my-text" )
submit_button = driver . find_element ( by = By . CSS_SELECTOR , value = "button" )
text_box . send_keys ( "Selenium" )
submit_button . click ()
message = driver . find_element ( by = By . ID , value = "message" )
text = message . text
driver . quit ()
Show full example using System ;
using OpenQA.Selenium ;
using OpenQA.Selenium.Chrome ;
namespace SeleniumDocs.GettingStarted ;
public static class FirstScript
{
public static void Main ()
{
IWebDriver driver = new ChromeDriver ();
driver . Navigate (). GoToUrl ( "https://www.selenium.dev/selenium/web/web-form.html" );
var title = driver . Title ;
driver . Manage (). Timeouts (). ImplicitWait = TimeSpan . FromMilliseconds ( 500 );
var textBox = driver . FindElement ( By . Name ( "my-text" ));
var submitButton = driver . FindElement ( By . TagName ( "button" ));
textBox . SendKeys ( "Selenium" );
submitButton . Click ();
var message = driver . FindElement ( By . Id ( "message" ));
var value = message . Text ;
driver . Quit ();
}
}
Show full example require 'selenium-webdriver'
driver = Selenium :: WebDriver . for :chrome
driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' )
driver . title
driver . manage . timeouts . implicit_wait = 500
text_box = driver . find_element ( name : 'my-text' )
submit_button = driver . find_element ( tag_name : 'button' )
text_box . send_keys ( 'Selenium' )
submit_button . click
message = driver . find_element ( id : 'message' )
message . text
driver . quit
Show full example const { By , Builder , Browser } = require ( 'selenium-webdriver' );
const assert = require ( "assert" );
( async function firstTest () {
let driver ;
try {
driver = await new Builder (). forBrowser ( Browser . CHROME ). build ();
await driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' );
let title = await driver . getTitle ();
assert . equal ( "Web form" , title );
await driver . manage (). setTimeouts ({ implicit : 500 });
let textBox = await driver . findElement ( By . name ( 'my-text' ));
let submitButton = await driver . findElement ( By . css ( 'button' ));
await textBox . sendKeys ( 'Selenium' );
await submitButton . click ();
let message = await driver . findElement ( By . id ( 'message' ));
let value = await message . getText ();
assert . equal ( "Received!" , value );
} catch ( e ) {
console . log ( e )
} finally {
await driver . quit ();
}
}())
Show full example package dev.selenium.getting_started
import org.junit.jupiter.api.*
import org.junit.jupiter.api.Assertions.assertEquals
import org.openqa.selenium.By
import org.openqa.selenium.WebDriver
import org.openqa.selenium.chrome.ChromeDriver
import java.time.Duration
@TestInstance ( TestInstance . Lifecycle . PER_CLASS )
class FirstScriptTest {
private lateinit var driver : WebDriver
@Test
fun eightComponents () {
driver = ChromeDriver ()
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" )
val title = driver . title
assertEquals ( "Web form" , title )
driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 ))
var textBox = driver . findElement ( By . name ( "my-text" ))
val submitButton = driver . findElement ( By . cssSelector ( "button" ))
textBox . sendKeys ( "Selenium" )
submitButton . click ()
val message = driver . findElement ( By . id ( "message" ))
val value = message . getText ()
assertEquals ( "Received!" , value )
driver . quit ()
}
}
8. Encerrando a sessão Isso encerra o processo do driver, que por padrão também fecha o navegador.
Nenhum outro comando pode ser enviado para esta instância do driver.
See Quitting Sessions .
Java
Python
CSharp
Ruby
JavaScript
Kotlin Show full example package dev.selenium.getting_started ;
import org.openqa.selenium.By ;
import org.openqa.selenium.WebDriver ;
import org.openqa.selenium.WebElement ;
import org.openqa.selenium.chrome.ChromeDriver ;
import java.time.Duration ;
public class FirstScript {
public static void main ( String [] args ) {
WebDriver driver = new ChromeDriver ();
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" );
driver . getTitle ();
driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 ));
WebElement textBox = driver . findElement ( By . name ( "my-text" ));
WebElement submitButton = driver . findElement ( By . cssSelector ( "button" ));
textBox . sendKeys ( "Selenium" );
submitButton . click ();
WebElement message = driver . findElement ( By . id ( "message" ));
message . getText ();
driver . quit ();
}
}
Show full example from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver . Chrome ()
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" )
title = driver . title
driver . implicitly_wait ( 0.5 )
text_box = driver . find_element ( by = By . NAME , value = "my-text" )
submit_button = driver . find_element ( by = By . CSS_SELECTOR , value = "button" )
text_box . send_keys ( "Selenium" )
submit_button . click ()
message = driver . find_element ( by = By . ID , value = "message" )
text = message . text
driver . quit ()
Show full example using System ;
using OpenQA.Selenium ;
using OpenQA.Selenium.Chrome ;
namespace SeleniumDocs.GettingStarted ;
public static class FirstScript
{
public static void Main ()
{
IWebDriver driver = new ChromeDriver ();
driver . Navigate (). GoToUrl ( "https://www.selenium.dev/selenium/web/web-form.html" );
var title = driver . Title ;
driver . Manage (). Timeouts (). ImplicitWait = TimeSpan . FromMilliseconds ( 500 );
var textBox = driver . FindElement ( By . Name ( "my-text" ));
var submitButton = driver . FindElement ( By . TagName ( "button" ));
textBox . SendKeys ( "Selenium" );
submitButton . Click ();
var message = driver . FindElement ( By . Id ( "message" ));
var value = message . Text ;
driver . Quit ();
}
}
Show full example require 'selenium-webdriver'
driver = Selenium :: WebDriver . for :chrome
driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' )
driver . title
driver . manage . timeouts . implicit_wait = 500
text_box = driver . find_element ( name : 'my-text' )
submit_button = driver . find_element ( tag_name : 'button' )
text_box . send_keys ( 'Selenium' )
submit_button . click
message = driver . find_element ( id : 'message' )
message . text
driver . quit
Show full example const { By , Builder , Browser } = require ( 'selenium-webdriver' );
const assert = require ( "assert" );
( async function firstTest () {
let driver ;
try {
driver = await new Builder (). forBrowser ( Browser . CHROME ). build ();
await driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' );
let title = await driver . getTitle ();
assert . equal ( "Web form" , title );
await driver . manage (). setTimeouts ({ implicit : 500 });
let textBox = await driver . findElement ( By . name ( 'my-text' ));
let submitButton = await driver . findElement ( By . css ( 'button' ));
await textBox . sendKeys ( 'Selenium' );
await submitButton . click ();
let message = await driver . findElement ( By . id ( 'message' ));
let value = await message . getText ();
assert . equal ( "Received!" , value );
} catch ( e ) {
console . log ( e )
} finally {
await driver . quit ();
}
}())
Show full example package dev.selenium.getting_started
import org.junit.jupiter.api.*
import org.junit.jupiter.api.Assertions.assertEquals
import org.openqa.selenium.By
import org.openqa.selenium.WebDriver
import org.openqa.selenium.chrome.ChromeDriver
import java.time.Duration
@TestInstance ( TestInstance . Lifecycle . PER_CLASS )
class FirstScriptTest {
private lateinit var driver : WebDriver
@Test
fun eightComponents () {
driver = ChromeDriver ()
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" )
val title = driver . title
assertEquals ( "Web form" , title )
driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 ))
var textBox = driver . findElement ( By . name ( "my-text" ))
val submitButton = driver . findElement ( By . cssSelector ( "button" ))
textBox . sendKeys ( "Selenium" )
submitButton . click ()
val message = driver . findElement ( By . id ( "message" ))
val value = message . getText ()
assertEquals ( "Received!" , value )
driver . quit ()
}
}
Running Selenium File
Java
Python
CSharp
Ruby
JavaScript
Kotlin Show full example # Running Selenium Java Tests
The following steps will guide you on how to
run Selenium Java tests using a repository
of `SeleniumHQ/seleniumhq.github.io` examples.
## Initial Setup
### Prerequisites
Ensure that Java Development Kit (JDK) and Maven
are installed on your system. If they are not installed,
you will need to download and install them. You can
find detailed installation guides for both on their
respective official sites.
### Clone the repository
First, we need to get the Selenium Java examples
on your local machine. This can be done by
cloning the `SeleniumHQ/seleniumhq.github.io` Git repository.
Run the following command in your terminal:
```bash
git clone https://github.com/SeleniumHQ/seleniumhq.github.io.git
```
## Navigate to the java directory
After cloning the repository, navigate into the
directory where the Selenium Java examples are
located. Run the following command:
```bash
cd seleniumhq.github.io/examples/java
```
## Running the Tests
### Install dependencies
Before running the tests, we need to install all
necessary dependencies. Maven, a software
project management tool, can do this for us.
Run the following command:
```bash
mvn test-compile
```
### Run all tests
To verify if everything is installed correctly and
functioning properly, we should run all
available tests. This can be done with the following command:
```bash
mvn test
```
Please be patient! If this is your first time running these tests,
it might take a while to download and verify all necessary browser drivers.
## Execute a specific example
To run a specific Selenium Java example, use the following command:
```bash
mvn exec:java -D"exec.mainClass" = "dev.selenium.getting_started.FirstScript" -D"exec.classpathScope" = test
```
Make sure to replace `dev.selenium.getting_started.FirstScript` with the path and name of the example you want to run.
Show full example # Running all tests from Selenium python example
Follow these steps to run all test example from selenium python
1. Clone this repository
```
git clone https://github.com/SeleniumHQ/seleniumhq.github.io.git
```
2. Navigate to `python` directory
```
cd seleniumhq.github.io/examples/python
```
3. Install dependencies using pip
```
pip install -r requirements.txt
```
> if you are on a different python version, for example python3.x you may have to replace `pip` with `pip3`
4. Run all tests
```
pytest
```
> Please keep some patience - If you are doing it for the first time, it will take a little while to verify and download the browser drivers
## Execute a specific example
To run a specific Selenium Python example, use the following command:
```bash
pytest path/to/test_script.py
```
Make sure to replace `path/to/test_script.py` with the path and name of the example you want to run.
Show full example # Running all tests from Selenium ruby example
Follow these steps to run all test example from selenium ruby
1. Clone this repository
```
git clone https://github.com/SeleniumHQ/seleniumhq.github.io.git
```
2. Navigate to `ruby` directory
```
cd seleniumhq.github.io/examples/ruby
```
3. Install dependencies using bundler
```
bundler install
```
4. Run all tests
```
bundle exec rspec
```
> Please keep some patience - If you are doing it for the first time, it will take a little while to verify and download the browser drivers
# Execute a ruby script
Use this command to run a ruby script and follow the first script example
```
ruby example_script.rb
```
Show full example # Running all tests from Selenium javascript example
Follow these steps to run all test example from selenium javascript
1. Clone this repository
```
git clone https://github.com/SeleniumHQ/seleniumhq.github.io.git
```
2. Navigate to `javascript` directory
```
cd seleniumhq.github.io/examples/javascript
```
3. Install dependencies using node
```
npm install
```
4. Run all all tests
```
npm test
```
> Please keep some patience - If you are doing it for the first time, it will take a little while to verify and download the browser drivers
# Execute a javascript test
Use this command to run a JavaScript and follow the first script example
```
node example_script.spec.js
```
Próximos Passos Most Selenium users execute many sessions and need to organize them to minimize duplication and keep the code
more maintainable. Read on to learn about how to put this code into context for your use case with
Using Selenium .
3 - Organizando e executando o código Selenium Escalonamento da execução do Selenium com um IDE e uma biblioteca do Test Runner
Se quiser executar mais do que um punhado de scripts pontuais, precisa de
ser capaz de organizar e trabalhar com seu código. Esta página deve dar a você
ideias de como fazer coisas produtivas com seu código Selenium.
Usos comuns A maioria das pessoas usa o Selenium para executar testes automatizados para aplicações web,
mas o Selenium suporta qualquer caso de uso de automação de navegador.
Tarefas Repetitivas Talvez seja necessário fazer login em um site e baixar algo ou enviar um formulário.
Você pode criar um script Selenium para ser executado com um serviço em horários pré-definidos.
Web Scrapping Está a tentar recolher dados de um site que não tem uma API? O Selenium
permitirá que você faça isso, mas certifique-se de estar familiarizado com os termos de serviço do site
termos de serviço do site, pois alguns sites não permitem isso e outros até bloqueiam o Selenium.
Testes Executar o Selenium para testes requer fazer asserções sobre as ações tomadas pelo Selenium.
Então uma boa biblioteca de asserções é necessária. Características adicionais para prover estrutura para testes
requerem o uso de Executador de teste .
IDEs Independentemente de como você usa o código do Selenium,
não será muito eficaz escrevendo ou executando-o sem um bom
ambiente de desenvolvimento integrado. Aqui estão algumas opções comuns…
Executador de teste Mesmo que não esteja a usar o Selenium para testes, se tiver casos de uso avançado, pode fazer
sentido usar um executor de testes para organizar melhor seu código. Ser capaz de usar hooks antes/depois
e executar coisas em grupos ou em paralelo pode ser muito útil.
Escolhendo Há muitos executores de teste diferentes disponíveis.
Todos os exemplos de código nesta documentação podem ser encontrados em (ou estão sendo movidos para) nossos diretórios
que usam test runners e são executados a cada lançamento para garantir que todo o código esteja correto e atualizado.
Aqui está uma lista de executores de teste com links. O primeiro item é o que é usado por este repositório e o que
que será usado para todos os exemplos nesta página.
Java
Python
CSharp
Ruby
JavaScript
Kotlin JUnit - Uma estrutura de teste amplamente utilizada para testes Selenium baseados em Java.TestNG - Oferece recursos extras, como execução de testes paralelos e testes parametrizados.pytest -Uma escolha preferida por muitos, graças à sua simplicidade e aos seus poderosos plugins.unittest - A estrutura de testes da biblioteca padrão do Python.NUnit - Um popular framework de teste unitário para .NET.MS Test - O Framework de testes unitários da Microsoft.RSpec - A biblioteca de testes mais utilizada para executar testes Selenium em Ruby.Minitest - Um framework de testes leve que vem com a biblioteca padrão do Ruby.Jest - Principalmente conhecido como um framework de teste para React, também pode ser utilizado para testes Selenium.Mocha - A biblioteca JS mais comum para executar testes Selenium.Kotest - Uma estrutura de testes flexível e abrangente, projetada especificamente para Kotlin.JUnit5 - A estrutura de testes padrão do Java, totalmente compatível com Kotlin.Instalando Isto é muito semelhante ao que foi requerido em Install a Selenium Library .
Este código está apenas a mostrar exemplos do que está a ser usado no nosso projeto de Exemplos de Documentação.
Java
Python
CSharp
Ruby
JavaScript
Kotlin Para usá-lo em um projeto, adicione-o ao arquivo requirements.txt
:
in the project’s csproj
especifique a dependência como PackageReference
em ItemGroup
:
In your project’s package.json
, adicionar requisito às dependências
:
Afirmar
Java
Python
CSharp
Ruby
JavaScript
Kotlin Show full example package dev.selenium.getting_started ;
import static org.junit.jupiter.api.Assertions.assertEquals ;
import java.time.Duration ;
import org.junit.jupiter.api.AfterEach ;
import org.junit.jupiter.api.BeforeEach ;
import org.junit.jupiter.api.Test ;
import org.openqa.selenium.By ;
import org.openqa.selenium.WebDriver ;
import org.openqa.selenium.WebElement ;
import org.openqa.selenium.chrome.ChromeDriver ;
public class UsingSeleniumTest {
WebDriver driver ;
@BeforeEach
public void setup () {
driver = new ChromeDriver ();
}
@Test
public void eightComponents () {
driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 ));
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" );
String title = driver . getTitle ();
assertEquals ( "Web form" , title );
WebElement textBox = driver . findElement ( By . name ( "my-text" ));
WebElement submitButton = driver . findElement ( By . cssSelector ( "button" ));
textBox . sendKeys ( "Selenium" );
submitButton . click ();
WebElement message = driver . findElement ( By . id ( "message" ));
String value = message . getText ();
assertEquals ( "Received!" , value );
}
@AfterEach
public void teardown () {
driver . quit ();
}
}
<details class="mt-3">
<summary>Show full example</summary>
<div class="pt-2">
<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-py" data-lang="py"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">from</span> <span style="color:#000">selenium</span> <span style="color:#204a87;font-weight:bold">import</span> <span style="color:#000">webdriver</span>
from selenium.webdriver.common.by import By
def test_eight_components ():
driver = setup ()
title = driver . title
assert title == "Web form"
driver . implicitly_wait ( 0.5 )
text_box = driver . find_element ( by = By . NAME , value = "my-text" )
submit_button = driver . find_element ( by = By . CSS_SELECTOR , value = "button" )
text_box . send_keys ( "Selenium" )
submit_button . click ()
message = driver . find_element ( by = By . ID , value = "message" )
value = message . text
assert value == "Received!"
teardown ( driver )
def setup ():
driver = webdriver . Chrome ()
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" )
return driver
def teardown ( driver ):
driver . quit ()
<div class="text-end pb-2 mt-2">
<a href="https://github.com/SeleniumHQ/seleniumhq.github.io/blob/display_full/examples/python/tests/getting_started/using_selenium_tests.py#L8-L9" target="_blank">
<i class="fas fa-external-link-alt pl-2"></i>
<strong>View full example on GitHub</strong>
</a>
</div>
Show full example using System ;
using Microsoft.VisualStudio.TestTools.UnitTesting ;
using OpenQA.Selenium ;
using OpenQA.Selenium.Chrome ;
namespace SeleniumDocs.GettingStarted
{
[TestClass]
public class UsingSeleniumTest
{
[TestMethod]
public void EightComponents ()
{
IWebDriver driver = new ChromeDriver ();
driver . Navigate (). GoToUrl ( "https://www.selenium.dev/selenium/web/web-form.html" );
var title = driver . Title ;
Assert . AreEqual ( "Web form" , title );
driver . Manage (). Timeouts (). ImplicitWait = TimeSpan . FromMilliseconds ( 500 );
var textBox = driver . FindElement ( By . Name ( "my-text" ));
var submitButton = driver . FindElement ( By . TagName ( "button" ));
textBox . SendKeys ( "Selenium" );
submitButton . Click ();
var message = driver . FindElement ( By . Id ( "message" ));
var value = message . Text ;
Assert . AreEqual ( "Received!" , value );
driver . Quit ();
}
}
}
Show full example # frozen_string_literal: true
require 'selenium-webdriver'
RSpec . describe 'Using Selenium' do
it 'uses eight components' do
driver = Selenium :: WebDriver . for :chrome
driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' )
title = driver . title
expect ( title ) . to eq ( 'Web form' )
driver . manage . timeouts . implicit_wait = 500
text_box = driver . find_element ( name : 'my-text' )
submit_button = driver . find_element ( tag_name : 'button' )
text_box . send_keys ( 'Selenium' )
submit_button . click
message = driver . find_element ( id : 'message' )
value = message . text
expect ( value ) . to eq ( 'Received!' )
driver . quit
end
end
Show full example const { By , Builder } = require ( 'selenium-webdriver' );
const assert = require ( "assert" );
describe ( 'First script' , function () {
let driver ;
before ( async function () {
driver = await new Builder (). forBrowser ( 'chrome' ). build ();
});
it ( 'First Selenium script with mocha' , async function () {
await driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' );
let title = await driver . getTitle ();
assert . equal ( "Web form" , title );
await driver . manage (). setTimeouts ({ implicit : 500 });
let textBox = await driver . findElement ( By . name ( 'my-text' ));
let submitButton = await driver . findElement ( By . css ( 'button' ));
await textBox . sendKeys ( 'Selenium' );
await submitButton . click ();
let message = await driver . findElement ( By . id ( 'message' ));
let value = await message . getText ();
assert . equal ( "Received!" , value );
});
after ( async () => await driver . quit ());
});
Show full example package dev.selenium.getting_started
import org.junit.jupiter.api.*
import org.junit.jupiter.api.Assertions.assertEquals
import org.openqa.selenium.By
import org.openqa.selenium.WebDriver
import org.openqa.selenium.chrome.ChromeDriver
import java.time.Duration
@TestInstance ( TestInstance . Lifecycle . PER_CLASS )
class FirstScriptTest {
private lateinit var driver : WebDriver
@Test
fun eightComponents () {
driver = ChromeDriver ()
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" )
val title = driver . title
assertEquals ( "Web form" , title )
driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 ))
var textBox = driver . findElement ( By . name ( "my-text" ))
val submitButton = driver . findElement ( By . cssSelector ( "button" ))
textBox . sendKeys ( "Selenium" )
submitButton . click ()
val message = driver . findElement ( By . id ( "message" ))
val value = message . getText ()
assertEquals ( "Received!" , value )
driver . quit ()
}
}
Configuarar e Desconfigurar
Java
Python
CSharp
Ruby
JavaScript
Kotlin Set Up <details class="mt-3">
<summary>Show full example</summary>
<div class="pt-2">
<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">package</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">dev.selenium.getting_started</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline">
import static org.junit.jupiter.api.Assertions.assertEquals ;
import java.time.Duration ;
import org.junit.jupiter.api.AfterEach ;
import org.junit.jupiter.api.BeforeEach ;
import org.junit.jupiter.api.Test ;
import org.openqa.selenium.By ;
import org.openqa.selenium.WebDriver ;
import org.openqa.selenium.WebElement ;
import org.openqa.selenium.chrome.ChromeDriver ;
public class UsingSeleniumTest {
WebDriver driver ;
@BeforeEach
public void setup () {
driver = new ChromeDriver ();
}
@Test
public void eightComponents () {
driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 ));
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" );
String title = driver . getTitle ();
assertEquals ( "Web form" , title );
WebElement textBox = driver . findElement ( By . name ( "my-text" ));
WebElement submitButton = driver . findElement ( By . cssSelector ( "button" ));
textBox . sendKeys ( "Selenium" );
submitButton . click ();
WebElement message = driver . findElement ( By . id ( "message" ));
String value = message . getText ();
assertEquals ( "Received!" , value );
}
@AfterEach
public void teardown () {
driver . quit ();
}
}
<div class="text-end pb-2 mt-2">
<a href="https://github.com/SeleniumHQ/seleniumhq.github.io/blob/display_full/examples/java/src/test/java/dev/selenium/getting_started/UsingSeleniumTest.java#L19-L22" target="_blank">
<i class="fas fa-external-link-alt pl-2"></i>
<strong>View full example on GitHub</strong>
</a>
</div>
Tear Down <details class="mt-3">
<summary>Show full example</summary>
<div class="pt-2">
<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">package</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">dev.selenium.getting_started</span><span style="color:#000;font-weight:bold">;</span><span style="color:#f8f8f8;text-decoration:underline">
import static org.junit.jupiter.api.Assertions.assertEquals ;
import java.time.Duration ;
import org.junit.jupiter.api.AfterEach ;
import org.junit.jupiter.api.BeforeEach ;
import org.junit.jupiter.api.Test ;
import org.openqa.selenium.By ;
import org.openqa.selenium.WebDriver ;
import org.openqa.selenium.WebElement ;
import org.openqa.selenium.chrome.ChromeDriver ;
public class UsingSeleniumTest {
WebDriver driver ;
@BeforeEach
public void setup () {
driver = new ChromeDriver ();
}
@Test
public void eightComponents () {
driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 ));
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" );
String title = driver . getTitle ();
assertEquals ( "Web form" , title );
WebElement textBox = driver . findElement ( By . name ( "my-text" ));
WebElement submitButton = driver . findElement ( By . cssSelector ( "button" ));
textBox . sendKeys ( "Selenium" );
submitButton . click ();
WebElement message = driver . findElement ( By . id ( "message" ));
String value = message . getText ();
assertEquals ( "Received!" , value );
}
@AfterEach
public void teardown () {
driver . quit ();
}
}
<div class="text-end pb-2 mt-2">
<a href="https://github.com/SeleniumHQ/seleniumhq.github.io/blob/display_full/examples/java/src/test/java/dev/selenium/getting_started/UsingSeleniumTest.java#L45-L48" target="_blank">
<i class="fas fa-external-link-alt pl-2"></i>
<strong>View full example on GitHub</strong>
</a>
</div>
Set Up <details class="mt-3">
<summary>Show full example</summary>
<div class="pt-2">
<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-py" data-lang="py"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">from</span> <span style="color:#000">selenium</span> <span style="color:#204a87;font-weight:bold">import</span> <span style="color:#000">webdriver</span>
from selenium.webdriver.common.by import By
def test_eight_components ():
driver = setup ()
title = driver . title
assert title == "Web form"
driver . implicitly_wait ( 0.5 )
text_box = driver . find_element ( by = By . NAME , value = "my-text" )
submit_button = driver . find_element ( by = By . CSS_SELECTOR , value = "button" )
text_box . send_keys ( "Selenium" )
submit_button . click ()
message = driver . find_element ( by = By . ID , value = "message" )
value = message . text
assert value == "Received!"
teardown ( driver )
def setup ():
driver = webdriver . Chrome ()
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" )
return driver
def teardown ( driver ):
driver . quit ()
<div class="text-end pb-2 mt-2">
<a href="https://github.com/SeleniumHQ/seleniumhq.github.io/blob/display_full/examples/python/tests/getting_started/using_selenium_tests.py#L25-L28" target="_blank">
<i class="fas fa-external-link-alt pl-2"></i>
<strong>View full example on GitHub</strong>
</a>
</div>
Tear Down <details class="mt-3">
<summary>Show full example</summary>
<div class="pt-2">
<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-py" data-lang="py"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">from</span> <span style="color:#000">selenium</span> <span style="color:#204a87;font-weight:bold">import</span> <span style="color:#000">webdriver</span>
from selenium.webdriver.common.by import By
def test_eight_components ():
driver = setup ()
title = driver . title
assert title == "Web form"
driver . implicitly_wait ( 0.5 )
text_box = driver . find_element ( by = By . NAME , value = "my-text" )
submit_button = driver . find_element ( by = By . CSS_SELECTOR , value = "button" )
text_box . send_keys ( "Selenium" )
submit_button . click ()
message = driver . find_element ( by = By . ID , value = "message" )
value = message . text
assert value == "Received!"
teardown ( driver )
def setup ():
driver = webdriver . Chrome ()
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" )
return driver
def teardown ( driver ):
driver . quit ()
<div class="text-end pb-2 mt-2">
<a href="https://github.com/SeleniumHQ/seleniumhq.github.io/blob/display_full/examples/python/tests/getting_started/using_selenium_tests.py#L30-31" target="_blank">
<i class="fas fa-external-link-alt pl-2"></i>
<strong>View full example on GitHub</strong>
</a>
</div>
Set Up <details class="mt-3">
<summary>Show full example</summary>
<div class="pt-2">
<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-rb" data-lang="rb"><span style="display:flex;"><span><span style="color:#8f5902;font-style:italic"># frozen_string_literal: true</span>
require 'selenium-webdriver'
RSpec . describe 'Using Selenium' do
it 'uses eight components' do
driver = Selenium :: WebDriver . for :chrome
driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' )
title = driver . title
expect ( title ) . to eq ( 'Web form' )
driver . manage . timeouts . implicit_wait = 500
text_box = driver . find_element ( name : 'my-text' )
submit_button = driver . find_element ( tag_name : 'button' )
text_box . send_keys ( 'Selenium' )
submit_button . click
message = driver . find_element ( id : 'message' )
value = message . text
expect ( value ) . to eq ( 'Received!' )
driver . quit
end
end
<div class="text-end pb-2 mt-2">
<a href="https://github.com/SeleniumHQ/seleniumhq.github.io/blob/display_full/examples/ruby/spec/getting_started/using_selenium_spec.rb#L7" target="_blank">
<i class="fas fa-external-link-alt pl-2"></i>
<strong>View full example on GitHub</strong>
</a>
</div>
Tear Down <details class="mt-3">
<summary>Show full example</summary>
<div class="pt-2">
<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-rb" data-lang="rb"><span style="display:flex;"><span><span style="color:#8f5902;font-style:italic"># frozen_string_literal: true</span>
require 'selenium-webdriver'
RSpec . describe 'Using Selenium' do
it 'uses eight components' do
driver = Selenium :: WebDriver . for :chrome
driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' )
title = driver . title
expect ( title ) . to eq ( 'Web form' )
driver . manage . timeouts . implicit_wait = 500
text_box = driver . find_element ( name : 'my-text' )
submit_button = driver . find_element ( tag_name : 'button' )
text_box . send_keys ( 'Selenium' )
submit_button . click
message = driver . find_element ( id : 'message' )
value = message . text
expect ( value ) . to eq ( 'Received!' )
driver . quit
end
end
<div class="text-end pb-2 mt-2">
<a href="https://github.com/SeleniumHQ/seleniumhq.github.io/blob/display_full/examples/ruby/spec/getting_started/using_selenium_spec.rb#L26" target="_blank">
<i class="fas fa-external-link-alt pl-2"></i>
<strong>View full example on GitHub</strong>
</a>
</div>
### Set Up
Show full example const { By , Builder } = require ( 'selenium-webdriver' );
const assert = require ( "assert" );
describe ( 'First script' , function () {
let driver ;
before ( async function () {
driver = await new Builder (). forBrowser ( 'chrome' ). build ();
});
it ( 'First Selenium script with mocha' , async function () {
await driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' );
let title = await driver . getTitle ();
assert . equal ( "Web form" , title );
await driver . manage (). setTimeouts ({ implicit : 500 });
let textBox = await driver . findElement ( By . name ( 'my-text' ));
let submitButton = await driver . findElement ( By . css ( 'button' ));
await textBox . sendKeys ( 'Selenium' );
await submitButton . click ();
let message = await driver . findElement ( By . id ( 'message' ));
let value = await message . getText ();
assert . equal ( "Received!" , value );
});
after ( async () => await driver . quit ());
});
### Tear Down
Show full example const { By , Builder } = require ( 'selenium-webdriver' );
const assert = require ( "assert" );
describe ( 'First script' , function () {
let driver ;
before ( async function () {
driver = await new Builder (). forBrowser ( 'chrome' ). build ();
});
it ( 'First Selenium script with mocha' , async function () {
await driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' );
let title = await driver . getTitle ();
assert . equal ( "Web form" , title );
await driver . manage (). setTimeouts ({ implicit : 500 });
let textBox = await driver . findElement ( By . name ( 'my-text' ));
let submitButton = await driver . findElement ( By . css ( 'button' ));
await textBox . sendKeys ( 'Selenium' );
await submitButton . click ();
let message = await driver . findElement ( By . id ( 'message' ));
let value = await message . getText ();
assert . equal ( "Received!" , value );
});
after ( async () => await driver . quit ());
});
Executando
Java
Python
CSharp
Ruby
JavaScript
Kotlin <details class="mt-3">
<summary>Show full example</summary>
<div class="pt-2">
<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-md" data-lang="md"><span style="display:flex;"><span><span style="color:#000080;font-weight:bold"># Running all tests from Selenium python example
Follow these steps to run all test example from selenium python
1. Clone this repository
</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"></span>git clone https://github.com/SeleniumHQ/seleniumhq.github.io.git </span></span><span style="display:flex;"><span><span style="color:#4e9a06">
2. Navigate to python
directory
</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"></span>cd seleniumhq.github.io/examples/python </span></span><span style="display:flex;"><span><span style="color:#4e9a06">
3. Install dependencies using pip
</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"></span>pip install -r requirements.txt </span></span><span style="display:flex;"><span><span style="color:#4e9a06">
> if you are on a different python version, for example python3.x you may have to replace pip
with pip3
4. Run all tests
</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"></span>pytest </span></span><span style="display:flex;"><span><span style="color:#4e9a06">
> Please keep some patience - If you are doing it for the first time, it will take a little while to verify and download the browser drivers
## Execute a specific example
To run a specific Selenium Python example, use the following command:
bash </span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"></span>pytest path/to/test_script.py </span></span><span style="display:flex;"><span><span style="color:#4e9a06">
Make sure to replace path/to/test_script.py
with the path and name of the example you want to run.
<div class="text-end pb-2 mt-2">
<a href="https://github.com/SeleniumHQ/seleniumhq.github.io/blob/display_full/examples/python/README.md#L35" target="_blank">
<i class="fas fa-external-link-alt pl-2"></i>
<strong>View full example on GitHub</strong>
</a>
</div>
<details class="mt-3">
<summary>Show full example</summary>
<div class="pt-2">
<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-md" data-lang="md"><span style="display:flex;"><span><span style="color:#000080;font-weight:bold"># Running all tests from Selenium ruby example
Follow these steps to run all test example from selenium ruby
1. Clone this repository
</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"></span>git clone https://github.com/SeleniumHQ/seleniumhq.github.io.git </span></span><span style="display:flex;"><span><span style="color:#4e9a06">
2. Navigate to ruby
directory
</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"></span>cd seleniumhq.github.io/examples/ruby </span></span><span style="display:flex;"><span><span style="color:#4e9a06">
3. Install dependencies using bundler
</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"></span>bundler install </span></span><span style="display:flex;"><span><span style="color:#4e9a06">
4. Run all tests
</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"></span>bundle exec rspec </span></span><span style="display:flex;"><span><span style="color:#4e9a06">
> Please keep some patience - If you are doing it for the first time, it will take a little while to verify and download the browser drivers
# Execute a ruby script
Use this command to run a ruby script and follow the first script example
</span></span></span><span style="display:flex;"><span><span style="color:#4e9a06"></span>ruby example_script.rb </span></span><span style="display:flex;"><span><span style="color:#4e9a06">
<div class="text-end pb-2 mt-2">
<a href="https://github.com/SeleniumHQ/seleniumhq.github.io/blob/display_full/examples/ruby/README.md#L26" target="_blank">
<i class="fas fa-external-link-alt pl-2"></i>
<strong>View full example on GitHub</strong>
</a>
</div>
Mocha mocha runningTests.spec.js
npx npx mocha runningTests.spec.js
Examplos In First script , we saw each of the components of a Selenium script.
Here’s an example of that code using a test runner:
Java
Python
CSharp
Ruby
JavaScript
Kotlin package dev.selenium.getting_started ;
import static org.junit.jupiter.api.Assertions.assertEquals ;
import java.time.Duration ;
import org.junit.jupiter.api.AfterEach ;
import org.junit.jupiter.api.BeforeEach ;
import org.junit.jupiter.api.Test ;
import org.openqa.selenium.By ;
import org.openqa.selenium.WebDriver ;
import org.openqa.selenium.WebElement ;
import org.openqa.selenium.chrome.ChromeDriver ;
public class UsingSeleniumTest {
WebDriver driver ;
@BeforeEach
public void setup () {
driver = new ChromeDriver ();
}
@Test
public void eightComponents () {
driver . manage (). timeouts (). implicitlyWait ( Duration . ofMillis ( 500 ));
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" );
String title = driver . getTitle ();
assertEquals ( "Web form" , title );
WebElement textBox = driver . findElement ( By . name ( "my-text" ));
WebElement submitButton = driver . findElement ( By . cssSelector ( "button" ));
textBox . sendKeys ( "Selenium" );
submitButton . click ();
WebElement message = driver . findElement ( By . id ( "message" ));
String value = message . getText ();
assertEquals ( "Received!" , value );
}
@AfterEach
public void teardown () {
driver . quit ();
}
}
from selenium import webdriver
from selenium.webdriver.common.by import By
def test_eight_components ():
driver = setup ()
title = driver . title
assert title == "Web form"
driver . implicitly_wait ( 0.5 )
text_box = driver . find_element ( by = By . NAME , value = "my-text" )
submit_button = driver . find_element ( by = By . CSS_SELECTOR , value = "button" )
text_box . send_keys ( "Selenium" )
submit_button . click ()
message = driver . find_element ( by = By . ID , value = "message" )
value = message . text
assert value == "Received!"
teardown ( driver )
def setup ():
driver = webdriver . Chrome ()
driver . get ( "https://www.selenium.dev/selenium/web/web-form.html" )
return driver
def teardown ( driver ):
driver . quit ()
using System ;
using Microsoft.VisualStudio.TestTools.UnitTesting ;
using OpenQA.Selenium ;
using OpenQA.Selenium.Chrome ;
namespace SeleniumDocs.GettingStarted
{
[TestClass]
public class UsingSeleniumTest
{
[TestMethod]
public void EightComponents ()
{
IWebDriver driver = new ChromeDriver ();
driver . Navigate (). GoToUrl ( "https://www.selenium.dev/selenium/web/web-form.html" );
var title = driver . Title ;
Assert . AreEqual ( "Web form" , title );
driver . Manage (). Timeouts (). ImplicitWait = TimeSpan . FromMilliseconds ( 500 );
var textBox = driver . FindElement ( By . Name ( "my-text" ));
var submitButton = driver . FindElement ( By . TagName ( "button" ));
textBox . SendKeys ( "Selenium" );
submitButton . Click ();
var message = driver . FindElement ( By . Id ( "message" ));
var value = message . Text ;
Assert . AreEqual ( "Received!" , value );
driver . Quit ();
}
}
}
# frozen_string_literal: true
require 'selenium-webdriver'
RSpec . describe 'Using Selenium' do
it 'uses eight components' do
driver = Selenium :: WebDriver . for :chrome
driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' )
title = driver . title
expect ( title ) . to eq ( 'Web form' )
driver . manage . timeouts . implicit_wait = 500
text_box = driver . find_element ( name : 'my-text' )
submit_button = driver . find_element ( tag_name : 'button' )
text_box . send_keys ( 'Selenium' )
submit_button . click
message = driver . find_element ( id : 'message' )
value = message . text
expect ( value ) . to eq ( 'Received!' )
driver . quit
end
end
const { By , Builder } = require ( 'selenium-webdriver' );
const assert = require ( "assert" );
describe ( 'First script' , function () {
let driver ;
before ( async function () {
driver = await new Builder (). forBrowser ( 'chrome' ). build ();
});
it ( 'First Selenium script with mocha' , async function () {
await driver . get ( 'https://www.selenium.dev/selenium/web/web-form.html' );
let title = await driver . getTitle ();
assert . equal ( "Web form" , title );
await driver . manage (). setTimeouts ({ implicit : 500 });
let textBox = await driver . findElement ( By . name ( 'my-text' ));
let submitButton = await driver . findElement ( By . css ( 'button' ));
await textBox . sendKeys ( 'Selenium' );
await submitButton . click ();
let message = await driver . findElement ( By . id ( 'message' ));
let value = await message . getText ();
assert . equal ( "Received!" , value );
});
after ( async () => await driver . quit ());
});
Proximos passos Pegue no que aprendeu e desenvolva o seu código Selenium!
À medida que encontrar mais funcionalidades de que precisa, leia o resto da nossa
documentação do WebDriver .
Development Partners
Selenium Level Sponsors Support the Selenium Project Learn more or view the full list of sponsors.