top / index / prev / next / target / source
日記形式でつづる いがぴょんコラム ウェブページです。
[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 が必要です。
私の場合は、以下の手順が必要でした。
brew install nodebrew
nodebrew install v8.11.2
nodebrew use v8.11.2
Last modified: $Date: 2018-05-23 $