top / index / prev / next / target / source

2018-05-23 diary: [TypeScript][Selenium] TypeScript で Selenium WebDriver を操作するシンプルサンプル

いがぴょん画像(小) 日記形式でつづる いがぴょんコラム ウェブページです。

[TypeScript][Selenium] TypeScript で Selenium WebDriver を操作するシンプルサンプル

[TypeScript] で [Selenium] WebDriver を操作するシンプルサンプルをメモします。

npm 環境のおおざっぱなメモ。

npm init -y
npm install selenium-webdriver@v3.6.0

コードは以下のようになります。(これは Chrome を駆動する例です)

import * as webdriver from 'selenium-webdriver';
let By = webdriver.By;

let driver = new webdriver.Builder().
    withCapabilities(webdriver.Capabilities.chrome()).
    build();

driver.get('https://test.sellinghours.org');

driver.wait(webdriver.until.elementLocated(By.name('username')), 10000)
    .then(function () {
        driver.findElement(By.name('username')).sendKeys('usermailaddr');
        driver.findElement(By.name('pw')).sendKeys('password');
        driver.findElement(By.name('Login')).sendKeys(webdriver.Key.ENTER);

        driver.wait(webdriver.until.elementLocated(By.xpath('//*[@id="setupLink"]')), 10000)
            .then(function () {
                driver.findElement(By.xpath('//*[@id="setupLink"]')).sendKeys(webdriver.Key.ENTER);
            });
    });

コンパイルは tsc FILENAME.ts のような形式になります。 参考までに、コンパイル後の JavaScript は以下のような感じです。

"use strict";
exports.__esModule = true;
var webdriver = require("selenium-webdriver");
var By = webdriver.By;
var driver = new webdriver.Builder().
    withCapabilities(webdriver.Capabilities.chrome()).
    build();
driver.get('https://test.sellinghours.org');
driver.wait(webdriver.until.elementLocated(By.name('username')), 10000)
    .then(function () {
    driver.findElement(By.name('username')).sendKeys('usermailaddr');
    driver.findElement(By.name('pw')).sendKeys('password');
    driver.findElement(By.name('Login')).sendKeys(webdriver.Key.ENTER);
    driver.wait(webdriver.until.elementLocated(By.xpath('//*[@id="setupLink"]')), 10000)
        .then(function () {
        driver.findElement(By.xpath('//*[@id="setupLink"]')).sendKeys(webdriver.Key.ENTER);
    });
});

実行は node FILENAME.js のような形式になります。 また実行に際しては、Google Chrome および ChromeDriver が必要です。

Mac の場合の環境構築メモ

私の場合は、以下の手順が必要でした。

Last modified: $Date: 2018-05-23 $

登場キーワード


この日記について