🚀

Node.jsでEdgeを画面操作する

に公開

Edge用のWebドライバーをインストール

1. 公式サイトからドライバーをダウンロード

https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/?form=MA13LH

2. 解凍して任意のフォルダに配置する

例えばC:\edgedriverフォルダを作成し、そこに解凍したファイルmsedgedriver.exeなど一式を配置する。

3. PATHを通す

PATHを通せばソースコード上でいちいちドライバーのフルパスを書かなくて良くなる。

  1. 「システム環境変数の編集」を開き、「システム環境変数」の'Path'を選択し、「編集」ボタンをクリック。
  2. 「新規(N)」ボタンをクリックし、ドライバを配置したフォルダ(C:\edgedriver)を入力し「OK」をクリック。
  3. コマンドプロンプトなどのターミナルを新規で開き、msedgedriver --versionを実行。バージョンが返ってくればOK。返ってこない場合は、少し時間を置く。(PATH変更前に開いていたターミナルでは、変更前の設定情報を参照しているので、新規ターミナルで確認すること。)

TypeScriptで動くNodeプロジェクトを立ち上げる

1. プロジェクトフォルダ作成・移動

mkdir my-ts-project
cd my-ts-project

2. npm初期化

npm init -y

3. TypeScriptと型定義のインストール

npm install --save-dev typescript @types/node

4. TypeScript設定ファイル作成

npx tsc --init

5. tsconfig.json を必要に応じて編集

(例:"target": "esnext", "module": "nodenext" など

プロジェクトのフォルダ構成は以下。

my-ts-project
└── my-app/
    ├── node_modules
    ├── package.json
    ├── package-lock.json
    └── tsconfig.json

Google画面を呼び出す

Google画面をedgeで表示して、5秒後に自動でとじるようにしました。
index.tsファイルはmy-appフォルダ配下に作成する。

index.ts
import { Builder, By, Key, until } from "selenium-webdriver";

const URL = "https://google.com";

(async function example() {
  let driver = await new Builder().forBrowser("MicrosoftEdge").build();
  try {
    await driver.get(URL);
    await driver.sleep(5000); // 5秒待つ
  } finally {
    await driver.quit();
  }
})();

実行する

tsファイルのまま実行できるコマンド

npx ts-node index.ts

Discussion