Windows10でNode.js + Seleniumをテストする実践。

widows10でnode.js + sleniumをテストする実践をやってみます。※この方法既出の情報ではありますが、実践メモとして残しておきます。

※node.js + seleniumの記事では以下の記事がかなりわかりやすいです。↓
Nodejsを使ってSeleniumでChromeを動かす – Qiita

Windowsにnode.jsが入っているか自身がない人はこちらをご覧ください
Windows10にnode.jsが入ってるか自身がないとき。

Windows10にnode.jsの導入がまだの人は以下のダウンロードリンクからnode.jsをダウンロードできます。
Node.js

スポンサーリンク

seleniumとクロームのドライバーを導入する

seleniumの導入

seleniumをいれるには以下のコマンドをうつだけでよいようです。

npm i selenium-webdriver

導入はうまくいきました。
windows seleniumdriver isntall

Chromeのドライバーを導入する

Chromeのドライバーはヘッドレスクロームを使うために必要です。以下のリンクから実行ファイル入りのフォルダをダウンロードできるようです。わたしはもっていたので確認してません。

Downloads – ChromeDriver – WebDriver for Chrome

※jsファイルがあるパスを同じ場所にドライバーをおきます。

スポンサーリンク

node.js + selenium + ヘッドレスクロームを動かしてみる

※sample.jsというファイルで以下のコードを保存します。

const fs = require('fs');
const { promisify } = require('util');
const webdriver = require('selenium-webdriver');
const { Builder, By, until } = webdriver;

const capabilities = webdriver.Capabilities.chrome();
capabilities.set('chromeOptions', {
    args: [
        '--headless',
        '--no-sandbox',
        '--disable-gpu',
        `--window-size=1980,1200`
    ]
});

// awaitを使うので、asyncで囲む
(async () => {

    // ブラウザ立ち上げ
    const driver = await new Builder().withCapabilities(capabilities).build();

    // Youtubeへ移動
    await driver.get('https://www.youtube.com/');

    // 検索ボックスが表示されるまで待つ
    await driver.wait(until.elementLocated(By.id('search')), 10000);

    let base64 = await driver.takeScreenshot();
    let buffer = Buffer.from(base64, 'base64');

    // bufferを保存
    await promisify(fs.writeFile)('screenshot.jpg', buffer);

    // ブラウザ終了
    driver.quit();

})();

上記のコードはyoutubeのスクリーンショットをとってくるコードです。ヘッドレスにしたくない場合は–headlessの部分を削除するかコメントアウトします。

node sample.js

※node.jsでsample.jsを実行します。

実行してとれたスクリーンショットがこちら

node.jsとseleniumでとれたもの

とりあえずたしかに動きました。わからないけどnode.jsはなんか速い気がするのは気のせいだろうか・・・。ヘッドレスブラウザは動きが見えないのが怖い、とか思いはじめるのがにわかなのでそうならないようにどうにかしていきたいところ。

コメント

タイトルとURLをコピーしました