UTFlute使ってみた

  • ほとんど設定とかもないしあんまドキュメント読まなくてもテスト実行できるとこまではすぐでよかった。
  • 一点はまったのが、ConditionBeanを利用しているとこでNoSuchMethodExceptionが発生
    • hogeProjectとhogeDaoProjectがあって、hogeProjectがhogeDaoProjectを参照していて、hogeProject側でUTFlute(0.4.5)を使っていたのだけど、hogeDaoProject側はDBFluteの1.0.5Jを使っていて、UTFluteは1.0.5Fのruntimeを使っているみたいでそっちを参照するようになってしまっていた。setupEfpgというのが有る無しの差異があったみたいだ。とりあえずDao側を変えるのはめんどいのでJを参照するようにして実行。
  • ついでに今Seleniumでテストを作成してみているのだけど、結構なんでもできて良い感じ。
    • Webにログインして、データを登録、画面のイメージ保存、出力されたPDFの帳票の保存をするとこまではやって、登録されたDBデータの検証もやりつつ今度はPDFの帳票をどうにか検証できないかみているところ。少し調べたところPDFBoxというのがあるけど使えるかまだ見れていない。DiffPDFというのを軽く試したけど思ったようにはいかなかった。お金かけていいならAdobeのがあるみたいだけど。
    • PDFの保存は別ウィンドウでPDFを開いたのだけどWebDriverでウィンドウをPDF側のに切り替えて、なんとかしようとしたけどhtmlの要素がうまくとれなくて仕方ないからRobotを使って保存のショートカットをキーボード操作でするようにした。
keyPress(KeyEvent.VK_CONTROL);
keyPress(KeyEvent.VK_SHIFT);
keyPress(KeyEvent.VK_S);
//ここでちょっとwait
keyRelease(KeyEvent.VK_CONTROL);
keyRelease(KeyEvent.VK_SHIFT);
keyRelease(KeyEvent.VK_S);
//ここでちょっとwait
keyPress(KeyEvent.VK_ALT);
keyPress(KeyEvent.VK_S);
//ここでちょっとwait
keyRelease(KeyEvent.VK_ALT);
keyRelease(KeyEvent.VK_S);

こんな感じ。
で、PDFを開いていたウィンドウはもういらないので同じように

keyPress(KeyEvent.VK_ALT);
keyPress(KeyEvent.VK_F4);
keyRelease(KeyEvent.VK_ALT);
keyRelease(KeyEvent.VK_F4);
  • その他Tipsメモ
    • Seleniumでよくやらかすのが、画面の表示倍率を100%にしてなくてエラーになるやつ。。。
    • 画面のイメージの保存でうまく全体を残せない時
      • 画面をスクロールさせてキャプチャした。こんな感じ。
JavascriptExecutor je = (JavascriptExecutor) getDriver();
je.executeScript("scroll(0,0);");
//キャプチャ実施
je.executeScript("scroll(0,1000);");
//キャプチャ実施
  • InternetExplorerDriverが64bitの使うと動きがありえないくらい遅い。32bitを使うと快適