tekitoumemo’s diary

思ったことを書くだけ。長文版Twitter

【selenium】seleniumを導入する上で重要なこと


心得。

今更感がするが、運用して学んだことがあるので書いてく。参考になれば。

selenium導入しよっかなーよくわからねぇけど」って人向け

くっそシンプルなパターンを作る

必要最低限のパターンを作る。いろんなパターンを考えない。絶対カオスになるので正常パターンだけ実装する。

分割してモジュールを作成

タイミングとかで成功率が変わるので一回で全部をやろうとしない。描画待てるよ!とかいろいろ意見があると思うが、何も知らない人に開発させる前提で考えてほしい。あとサイトの癖もあるからねー

ecサイトだったら

  • 商品選択→カートに入れる
  • カートから注文

みたいな感じで分割する。

seleniumのことを好きにならない

始めは結構面白いのよselenium。なんでも出来るって言ってもおかしくないぐらい機能が豊富。作っていくと、いろんなパターンを考えがちでカオス化するのは目に見えてるので「コーディングがめんどくせーから手っ取り早く終わらせよう」ぐらいの気持ちが大事。

スリープは入れるな!

seleniumのwaitなら許す。普通のスリープ入れるな!

elementとelementsどっちかに統一しよう

メソッド名が似てるからねー。可読性悪い気がする。

例外パターンもシレッと回避しろ!

特定のパターンは無理にif分回避するのでなく、要素がかなかったら処理しないとかに統一しよう。

// aタグが存在する場合のみクリックする
var tags = webDriver.FindElements(By.TagName("a"))
if(tags.Count() != 0)
{
    // クリック
}

c#ですみません。結構ここが決めてかなぁ?

サイトが変わって保守が大変になったら全部捨てろ!

強引すぎて申し訳ないが、これクソ大事。まぁこれを避けるために分割すればいいんだけど。プログラムもそうだよね。

テストエンジニアとかいれば話は別だけど、普通のエンジニアが開発しつつテストコード書いてくって感じで運用するならこの程度でいいと思う。っかこうやればよかったと後悔。

買ってよかったモノを紹介

リアルフォース

東プレ NG01B0 REALFORCE91UBK

東プレ NG01B0 REALFORCE91UBK

気分が良い。かっこいい。本当はhhkbがよかった。

カルティエの財布

これじゃないけど。良いもの持ってるって思えるから小物の物欲クソ無くなる。ホント財布とかくだらん買い物だな、原チャ買えんぞ

ダイニングテーブル

これじゃないけどダイニングテーブルはあるともうセンターテーブルとかでは飯食えなくなる最高。ちなみにNOCEってブランド

名刺入れ

カルティエ高すぎてね。。カード入れとして使ってるけど名刺入れの代用出来て最高。名刺入れ単体とかいらね。

テレビ

マジで安いやつでいい。壊れないし、機能いらんし。

ケトル偽物

ドリテック 電気ケトル ラミン ホワイト PO-323WT

ドリテック 電気ケトル ラミン ホワイト PO-323WT

コスパヤバい。汚れたら捨てればいいやぐらいの感覚だったんだけど3年目。

ウォークマン

クソ使いにくいし最低なんだけど、SDいいね。

iMac mini

APPLE Mac mini (2.6GHz Dual Core i5/8GB/1TB/Intel Iris) MGEN2J/A

APPLE Mac mini (2.6GHz Dual Core i5/8GB/1TB/Intel Iris) MGEN2J/A

安いし、Windows買うならMac買った方がいい。ヤフオクでゴリ安のプロダクトキー買ってbootcanpでおっけい。

ノートパッド

1.5万ぐらいで買った。全然良くないけど、おもちゃと思えば結構遊べる。

セミダブルベット

シングル買うなら捨てるつもりで買いなさい。ちょっと大きいから一人暮らしはしんどいかもだけど寝具はデカイに越したことがない。意外に女の人の方が狭さでストレス溜まるのかもしれない。

ソファ

2人掛けソファ 幅115 ブラウン EJ-2107

2人掛けソファ 幅115 ブラウン EJ-2107

ニトリのやつ買った。本当は2人がけ良くないんだけど一人暮らしの時はおけないししょうがない。ソファベットになるやつだと友達来た時楽。

レターオープナー

これやばい。買わない意味がわからない。ストレスと綺麗さが全然変わる

ゴミ箱

アスベル Rジョイント分別ダストボックス3個セット (33L・33L・27L)

アスベル Rジョイント分別ダストボックス3個セット (33L・33L・27L)

いらないって人多いと思うけど、ゴミはなるべく綺麗にしまっておいた方がよい。気分がいい。オシャレなの買ってもいいと思うけど高さとか統一感があるもので揃えた方が絶対いい。

スポンジ

タダで貰えるものはダメ。結構固めの方がいい。

カビキラー

カビキラー カビ取り剤 特大サイズ 本体 1,000g

カビキラー カビ取り剤 特大サイズ 本体 1,000g

毎週排水溝にぶっかけるだけど風呂とか台所クソ綺麗。
不潔感がないのは超重要。ピンク色の風呂場の人必見。

アイスノン

アイスノンソフト

アイスノンソフト

あると酔い過ぎたときとか熱とか暑いときとか最高。

電動ドリル

クソ安いやつでいいから必ず必要。IKEAとかで家具買ってこれないと死にます。DIYと辛さそこまで変わらんです。六角ドライバはほしいところ

高級イヤホン

15000ぐらいだけどかなり最高。もう他無理だわ。

それが僕には楽しかったから

それがぼくには楽しかったから 全世界を巻き込んだリナックス革命の真実 (小プロ・ブックス)

それがぼくには楽しかったから 全世界を巻き込んだリナックス革命の真実 (小プロ・ブックス)

お金や地位じゃなく本当に必要なものは世界中の人が使えるようにするべきだって考えはぐうの音も出ないぐらい素晴らしいことだと思う。まっこの人お金も地位も持ってるんだけどね!

ワイヤレススピーカー

Creative D100 ワイヤレス スピーカー ブラック Bluetooth SP-D100

Creative D100 ワイヤレス スピーカー ブラック Bluetooth SP-D100

コスパヤバい。デザイン値段音質すごい。もう7年目。

【angular4+.NET Core】一瞬でSPAを作る

技術ネタ。

わかりにくいから他のサイト推奨。リンクは載っける。

angularの環境作るのだるくない?c#とどう連携すんの?って調べてたら一瞬でSPAテンプレート出来たのでメモ。

SPAプロジェクトの作成

SPA関連のテンプレート(.NET Core)をダウンロード

dotnet new --install Microsoft.AspNetCore. SpaTemplates::*

まじで.NETCore優秀杉

作成するプロジェクトのディレクトリに移動

cd {対象のディレクトリ}

angularプロジェクトを作成

dotnet new angular

.NETCoreきも

npmのパッケージをダウンロード

npm install

プロジェクトのビルド

webpack

webpackでビルドが通らない( webpackのconfigファイルがない場合)

webpack --config webpack.config.vendor.js

ここからvisual studioで取得してくれるので、不要

Nugetパッケージを取得

dotnet restore

これだけ。.NETすごくね?

【参考】
ASP.NET CoreでAngularをする下準備
http://blog.okazuki.jp/entry/ 2017/03/05/091710
.NET Core command-line interface (CLI) tools
https://docs.microsoft.com/en- us/dotnet/core/tools/dotnet- restore
Windows環境でangular-cliを使えるようにする
http://qiita.com/elphe/items/ 8e73d4118b26a6971c3b
http://beachside.hatenablog. com/entry/2017/02/25/150306

【ASP.NET MVC】MVC2とMVC3以降のバリデーションの挙動がちょっと違う

技術ネタ。

あまり知ってても知らなくてもどうでも良い技術ネタ。

web.configに以下のコード書くと勝手にバリデーションしてくれて便利だよ☆ってやつなんだけどMVC2MVC3の挙動が違いすぎて「は?」ってなった。

<configuration>
  <system.web>
    <httpRuntime requestValidationMode="2.0" />
  </system.web>
</configuration>

MVC2でquerystringに危険なコードが埋め込まれた場合は以下の500エラーが発生

System.Web.HttpRequestValidationException: 危険な可能性のある Request.QueryString 値がクライアント (="...T 1,NULL,'<script>alert("XSS")...") から検出されました。

MVC3だと普通に200オッケー。

バリデーションされてねーじゃん!って思っでquerystringからMVCにぶっこんでみたら500エラー発生。ちゃんと出来てる。。

ようわからんからいろいろ調べたらMVC3以降は.NETFramework4系に移行して挙動も違うんだと。
最新のHttpRequestValidat‌​ionExceptionがパラメータで検知した段階でエラーを出す仕様みたい。

まっ、普通に200でいいよね

【Angular4】[innerHTML]で埋め込んだタグのイベントを拾う方法

技術ネタ。電車でブログってるから技術ネタが書きづらい書きづらい。

angular4にて、innerHTMLで埋め込む必要があってaタグとかぶっこんでるんだけどイベントが取れない。

以下のようなコードを入れたんだけど普通に無理だった。

import {Component} from 'angular2/core';

@Component({
    selector   : 'sub-child',
    template   : '<form [innerHTML]="html"></form>'
})

export class SubChildClass
{
    private html:string;
    private buttonText:string;

    constructor()
    {
        this.buttonText = 'A new button';
        this.create();
    }

    private create()
    {
        this.html = "<button (click)='new() '>" + this.buttonText + "</button>"
    }

    private new()
    {
        this.buttonText = "Text Changed";
    }
}

余裕で(click)='new()がかき消される。

domでいろいろやれば出来るけどクソめんどいよって記事がstackoverflowにあった(英語だけどそんな感じで書いてあった、リンク忘れたから今度はる)んでクリックイベントを取ってそこから処理を書く方法に変更。

HostListenerってやつ使ってクリックイベント取ってdomる。

///宣言
import { Component, HostListener } from '@angular/core';

// clickイベントを宣言
@HostListener('click', ['$event'])

onClick(event) {
 //ここでいろいろ
}

いやー感覚でangular4いじってたけどこれは感覚じゃわからんかったー。angularくそおもしろい

参考
https://stackoverflow.com/questions/35210072/angular-2-add-events-to-elements-after-the-dom-has-been-created

駐禁放置しまくってたらヤバイことにならなかった話

駐禁3年間放置(無視してたわけじゃないよ!家に通知来なかったんだよ!)

経緯:
夜中の横浜で適当に車止める。

駐禁貼られる

キップはその場で切らない←これ絶対やらなきゃダメ!(最後説明する)

紙なくす

三カ月後、不安になり支払いに行くがめんどくさがられ家に来るのまちなと言われる

一年後、再び駐禁取られる

前回の駐禁に対して何も言われない

安心する

警察完全にミスってると俺完全大勝利を確信する

車検通らない

車検証が以前の住所(警察は探さないらしい

支払い←イマココ

延滞金が10万とか行くかなとガクブルしてググる。調べた結果、それなりで安心した。計算式は以下。
(罰金×日数×14.5%)÷365
俺の場合だと大体これ
(15000×1095×14.5%)÷365 = 6525
6525+15000=21525


結果、違反金は15000で済みました!

理由とか放置車両とかいろいろ理由があれば延滞金かからないらしい正直者が馬鹿を見るよ!!

この「正直者が馬鹿を見る」ってのがキモで駐禁のキップ切ると以下のようなことが起きる

駐禁取られてその場でキップ切る
→二点減点+15000の罰金

駐禁取られて家に来るまで待つ
→15000の罰金のみ

なんでかって理由はわからないけど、所有者以外が取られたのに所有者に減点させるのがおかしいとかそんなことだろう。

まぁ、どっちもおかしいんだけどな!

賃貸をボロボロにしたのに敷金が返ってきた

最近、技術的なブログ書いてねー。

以前住んでいた家の敷金が結構戻ってきてびっくりしたので、なんで返ってきたか分析してみるよ!

ちなみにボロボロにしたって書いたけどやらかしたのは以下。
・キッチンの戸棚を剥がした
・椅子で壁がえぐれてる(一箇所)
・壁紙が一部剥がれてる
・襖が粘着テープでちょっとベタベタ
・床が椅子を引きずったようなあと多数

1.古い家に住んでいた

築25年の木造アパート。見た目とかはそんなヤバくはないんだけど、色々古い感じがある。もう古いし借り手が多いわけではないから修復費を取らないんじゃないのかな?ちなみに新築住んでいた友達は俺より綺麗にしてたのに追加で取られたみたい

2.敷金払ってた

当たり前なんだけど、敷金払わないと返って来ない。

3.常に部屋を綺麗にしてた

引っ越し当日もそこまで掃除しなくてもある程度綺麗だった。風呂場も当然綺麗。

4.家関係のもので故障したらすぐ連絡した

一年半で6回クレームいれた。ちょっと気になったらすぐ電話。ちょっと気になったらすぐ電話とこまめに家のメンテナンス(ただのクレーム)してた。エアコンも新品に取り替えてくれた壊れてないのに。

5.退去時、お菓子と挨拶に行った

大家にあったことないけど、ちゃんと挨拶に行った。あと結婚しますとか言うとまともな人感出るのでわりと免除してくれるかも。まぁ、関係あるかわからんが。

ちなみに敷金の5割戻ってきました(完璧でも6割しか戻らない」