Driver Binari
Per eseguire l'automazione basata sul protocollo WebDriver è necessario avere driver del browser configurati che traducano i comandi di automazione e siano in grado di eseguirli nel browser.
Configurazione automatizzata
Con WebdriverIO v8.14
e versioni successive non è più necessario scaricare e configurare manualmente i driver del browser poiché questo viene gestito da WebdriverIO. Tutto ciò che devi fare è specificare il browser su cui desideri effettuare i test e WebdriverIO farà il resto.
Personalizzazione del livello di automazione
WebdriverIO ha tre livelli di automazione:
1. Scarica e installa il browser utilizzando @puppeteer/browsers.
Se specifichi una combinazione browserName
/browserVersion
nella configurazione delle capabilities, WebdriverIO scaricherà e installerà la combinazione richiesta, indipendentemente dal fatto che esista già un'installazione sulla macchina. Se ometti browserVersion
, WebdriverIO proverà prima a localizzare e utilizzare un'installazione esistente con locate-app, altrimenti scaricherà e installerà la versione stabile corrente del browser. Per maggiori dettagli su browserVersion
, vedi qui.
La configurazione automatica del browser non supporta Microsoft Edge. Attualmente, sono supportati solo Chrome, Chromium e Firefox.
Se hai un'installazione del browser in una posizione che non può essere rilevata automaticamente da WebdriverIO, puoi specificare il binario del browser che disabiliterà il download e l'installazione automatizzati.
{
capabilities: [
{
browserName: 'chrome', // o 'firefox' o 'chromium'
'goog:chromeOptions': { // o 'moz:firefoxOptions' o 'wdio:chromedriverOptions'
binary: '/path/to/chrome'
},
}
]
}
2. Scarica e installa il driver utilizzando Chromedriver, Edgedriver o Geckodriver.
WebdriverIO farà sempre questo, a meno che il binary del driver non sia specificato nella configurazione:
{
capabilities: [
{
browserName: 'chrome', // o 'firefox', 'msedge', 'safari', 'chromium'
'wdio:chromedriverOptions': { // o 'wdio:geckodriverOptions', 'wdio:edgedriverOptions'
binary: '/path/to/chromedriver' // o 'geckodriver', 'msedgedriver'
}
}
]
}
WebdriverIO non scaricherà automaticamente il driver Safari poiché è già installato su macOS.
Evita di specificare un binary
per il browser e omettere il corrispondente binary
del driver o viceversa. Se viene specificato solo uno dei valori binary
, WebdriverIO cercherà di utilizzare o scaricare un browser/driver compatibile con esso. Tuttavia, in alcuni scenari potrebbe risultare in una combinazione incompatibile. Pertanto, si consiglia di specificare sempre entrambi per evitare problemi causati da incompatibilità di versione.
3. Avvio/arresto del driver.
Per impostazione predefinita, WebdriverIO avvierà e arresterà automaticamente il driver utilizzando una porta libera arbitraria. Specificare uno qualsiasi dei seguenti parametri di configurazione disabiliterà questa funzionalità, il che significa che dovrai avviare e arrestare manualmente il driver:
- Qualsiasi valore per port.
- Qualsiasi valore diverso da quello predefinito per protocol, hostname, path.
- Qualsiasi valore sia per user che per key.
Configurazione manuale
Di seguito viene descritto come è possibile impostare ancora individualmente ciascun driver. Puoi trovare un elenco con tutti i driver nel README di awesome-selenium
.
Se stai cercando di configurare piattaforme mobili e altre piattaforme UI, dai un'occhiata alla nostra guida Appium Setup.
Chromedriver
Per automatizzare Chrome puoi scaricare Chromedriver direttamente sul sito web del progetto o tramite il pacchetto NPM:
- npm
- Yarn
- pnpm
npm install -g chromedriver
yarn global add chromedriver
pnpm add -g chromedriver
Puoi quindi avviarlo tramite:
chromedriver --port=4444 --verbose
Geckodriver
Per automatizzare Firefox scarica l'ultima versione di geckodriver
per il tuo ambiente e decomprimi nel tuo directory di progetto:
- NPM
- Curl
- Brew
- Windows (64 bit / Chocolatey)
- Windows (64 bit / Powershell) DevTools
- npm
- Yarn
- pnpm
npm install geckodriver
yarn add geckodriver
pnpm add geckodriver
Linux:
curl -L https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-linux64.tar.gz | tar xz
MacOS (64 bit):
curl -L https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-macos.tar.gz | tar xz
brew install geckodriver
choco install selenium-gecko-driver
# Run as privileged session. Right-click and set 'Run as Administrator'
# Use geckodriver-v0.24.0-win32.zip for 32 bit Windows
$url = "https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-win64.zip"
$output = "geckodriver.zip" # will drop into current directory unless defined otherwise
$unzipped_file = "geckodriver" # will unzip to this folder name
# By default, Powershell uses TLS 1.0 the site security requires TLS 1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# Downloads Geckodriver
Invoke-WebRequest -Uri $url -OutFile $output
# Unzip Geckodriver
Expand-Archive $output -DestinationPath $unzipped_file
cd $unzipped_file
# Globally Set Geckodriver to PATH
[System.Environment]::SetEnvironmentVariable("PATH", "$Env:Path;$pwd\geckodriver.exe", [System.EnvironmentVariableTarget]::Machine)
Nota: Altre versioni di geckodriver
sono disponibili qui. Dopo il download puoi avviare il driver tramite:
/path/to/binary/geckodriver --port 4444
Edgedriver
Puoi scaricare il driver per Microsoft Edge sul sito web del progetto o come pacchetto NPM tramite:
npm install -g edgedriver
edgedriver --version # prints: Microsoft Edge WebDriver 115.0.1901.203 (a5a2b1779bcfe71f081bc9104cca968d420a89ac)
Safaridriver
Safaridriver viene preinstallato sul tuo MacOS e può essere avviato direttamente tramite:
safaridriver -p 4444