前書き

Wi2はWifiの機器がなくてもカフェで月額プラン362円(税抜)で使えるプランです。
しかし、ルノアールではそのまま月額プランで使えるんですが、
ドトールやカフェドクリエではオプションエリア(Wi2premium, Wi2premium_club)のところが多く、
追加料金の100円する払ったチケットを消費して繋ぐのがかなりだるいです。

何がだるいって?
接続のURLとチケットが違うのでうっかり普通の接続ページ行ったのにまた購入系サイトに行くのがだるい。
しかも、1時間経つとまた消費するURLにアクセするのもだるいです。

やること

仕方ないので、TestCafeという本来は作ったWebアプリをブラウザでテストするツールなんですけど、ブラウザ操作を自動化して以下の手順を踏んで、無味乾燥で非生産的な作業をささっとチケットの消費手順を終わらせたいです。
SeleniumもWebDriverとかのインストールもだるいので使いません。

Wi2のチケットなどの消費用URLへログイン=>チケット選択=>確認画面=>消費

前提

  • Wi2の月額プランを使っている方
  • Wi2のオプションエリア用チケットを購入済み
  • yarnコマンドが入っている(npmでもいけるけどこの記事はyarn前提)
  • 面倒臭がり屋さん

インストール

yarnの初期化

mkdir wi2_apps
cd wi2_apps
yarn init

フォルダ作ってその中でやります。

package.jsonへ追記

package.json
  "scripts": {
    "start": "testcafe firefox test.ts"
  },

package.jsonの適当なところに追加します。
最後に,があるので一番最後に追記した時は外すことに気を付けましょう。

僕はVivaldiを使ってますが、Vivaldiは無さそうなんでchromefirefoxedgeなど
自分の使ってるのに差し替えてね。

コードを書く

先ほどのpacakge.jsontest.ts(TypeScriptです)とか作って

test.ts
import { Selector } from 'testcafe';

const id = 'あなたのWi2ID';
const pass = 'あなたのWi2パスワード';

fixture `Getting Started`
    .page `https://service2.wi2.ne.jp/wi2was/mypageLogin?locale=ja`;


test('My first test', async t => {
    await t
        .typeText('#mypageLogin_txtLoginId', id)
        .typeText('#mypageLogin_txtPassWord', pass)
        .click('#mypageLogin_btnLogin');

    // activate
    await t
        .click('#mypageMenu_WAS03V008_BTN_RIYOU_KAKUNIN')

    const radio = Selector('input').withAttribute('name', 'rdoUseTicketVal');
    await t
        .click(radio)
        .click('#memberTicketStartInput_BTN_KAKUNIN')
        .click('#memberTicketStartConf_BTN_KAISI')
});

実行

  1. まず、WifiをWi2Premiumに接続しておく。

Wi2Connectで接続はまだできない。

  1. 以下のコマンドを実行します。
yarn start

wi2_appsフォルダの中で実行します。

  1. そのあとで、「Wi2 Connect」アプリで接続

これでチケット消費を自動化できました。
本当は1と3の手順も自動化したい。
1はシェルをnodeからキックしたらできると思うけど、3は無理かなー?

おまけ

ヘッドレスブラウザで行う

まずPuppeteer追加。
※グローバルじゃないとTestCafeが認識してくれません。

yarn global add puppeteer

package.jsonを書き換え

package.json
    "start": "testcafe puppeteer test.ts"

あとがき

この記事に需要があればいいねが100越えたらチケット購入も自動化の記事も書きます。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.