ITツールの機能紹介-SeleniumIDEの技術開拓 execute scriptの比較計算処理がうまくいかなかったお話
つ~じ~です。近年、アニメのリメイクや数十年ぶりの新作ラッシュがやばいですね。うる星やつら、らんま1/2、レイアース、ベルサイユのばら、ダイの大冒険、スラムダンク、東京ミュウミュウ、キン肉マン、シャーマンキング、デジモン、どろろ…他にも色々。自分世代のその筋の人なら絶対知ってるタイトルばかりです。俺得過ぎて度々テンション上がってます。
さて、プライベートを突き詰めるのも良いですがお仕事も大事。今日もまたSeleniumIDEの技術開拓を突き詰めていこうと思います。
今日のネタは仕事で起きたトラブルに対する解決法のご紹介です。
execute scriptの比較計算処理がうまくいかなかったお話
某PJで以下のようなscript文をSeleniumIDE内で構築しました。
getComparison = function getComparison(before_count, after_count){return before_count < after_count;}
『getComparison([処理実行前の数値], [処理実行後の数値])』のように定義し、「処理実行によって数値が大きくなっているか」を検証しようとしました。
最初は上手くいっていたのですが、
before_count = 9
after_count = 10
の時だけなぜかエラーになるようになりました。
7 < 8 →OK
8 < 9 →OK
9 < 10 →NG
10 < 11 →OK
11 < 12 →OK
どうやら 桁数が違う数値同士を比較しようとするとエラーになる ようです。
その対策として以下のようにscript文を修正しました。
getComparison = function getComparison(before_count, after_count){var b = Number(before_count); var a = Number(after_count); return b < a;}
Number(before_count)
Number(after_count)
のように「数値である」と定義してから比較処理を行ったところ、問題無く「9 < 10 →OK」になりました。
もしかしたらJavaScriptとかプログラムに精通してる方なら常識だったかもですね。もっと勉強が必要です。
技術を突き詰めていけるよう常に勉強は忘れないようにしましょう。今回はこれにて。