JavaScript の Selenium 実行環境の構築する
Selenium のエクスポートでも選べる JavaScript のテストフレームワーク の Mocha を使ってやってみる
作った環境で使ったバージョンと手順の大枠はこんな感じ
- 環境、バージョン
- Windows11
- Node.js v18.15.0
- npm v9.5.0
- mocha v10.2.0
- selenium-webdriver v4.11.1
- chromedriver v116.0.0
- 手順
- Node.jsインストール
- Selenium実行環境構築
2-1. Mocha, selenium-webdriver, chromedriver インストール
2-2. 実行モジュール作成、実行
Node.jsインストール
- Node.js インストーラー取得(LTSの方を選択)
https://nodejs.org/ - インストーラ実行
画面に従い進める、許可などは確認して同意、はいを選択
途中でコマンドプロンプト、PowerShell 上がってくるので画面に従いキー入力
Warning とか出ても気にしないでOK - インストール確認
コマンドプロンプト or Powrshell で以下を入力してバージョン確認# Node node --version # Node Package Manager npm --version
Selenium実行環境構築
Mocha, selenium-webdriver, chromedriver インストール
- 適当なフォルダを作る
C:\seleniumwork
- コマンドプロンプト or Powrshell で作ったフォルダに移動
cd C:\seleniumwork
- Mocha をインストール(以下のコマンド実行)
npm i mocha
- selenium-webdriver をインストール(以下のコマンド実行)
npm i selenium-webdriver
- chromedriver を をインストール(以下のコマンド実行)
npm i chromedriver
- 作成された package.json の確認
C:\seleniumwork\package.json
{ "dependencies": { "chromedriver": "^116.0.0", "mocha": "^10.2.0", "selenium-webdriver": "^4.11.1" } }
実行モジュール作成、実行
-
フォルダの中に JavaScript
test.js
を作る
Selenium IDE を使ってエクスポートしたファイルでやってもOK
サンプルとして Google検索して実行するまでの script は以下C:\seleniumwork\test.jsconst { Builder, By, Key, until } = require('selenium-webdriver') const assert = require('assert') describe('test', function () { let driver let vars beforeEach(async function () { driver = await new Builder().forBrowser('chrome').build() vars = {} }) afterEach(async function () { await driver.quit(); // ここをコメントアウトでブラウザを閉じなくなる }) it('test', async function () { await driver.get("https://www.google.com/") await driver.findElement(By.name("q")).sendKeys('test') await driver.findElement(By.name("q")).submit() }) })
-
package.json に実行スクリプト追加
C:\seleniumwork\package.json{ "dependencies": { "chromedriver": "^116.0.0", "mocha": "^10.2.0", "selenium-webdriver": "^4.11.1" }, "scripts": { "test": "mocha test.js --timeout 0" } }
-
コマンドプロンプト or Powrshell で作ったフォルダに移動
cd C:\seleniumwork
-
テスト実行(以下のコマンド実行)
npm run test
-
Chromeが上がってきて処理が動けばOK