Mixer2 meets	
意外とSeleniumと相性がいい
テンプレートエンジンMixer2	
@nabedge
第1回 日本Seleniumユーザーコミュニティ勉強会
渋谷CA
2014-01-18	
1
自己紹介	

•  わたなべ
•  SI屋の技術屋さん
•  @nabedge
•  http://nabedge.blogspot.jp

2
What is Mixer2	

http://mixer2.org	

JavaでWebアプリを作るための
テンプレートエンジン	
3
このJSPをSeleniumでテストできますか?	

こんにちは
<% if (name == null) { %>
ゲストさん
<% } else { %>
<%= name %>さん
<% } %>	
4
こうしてほしくなりますよね?	

こんにちは<span id=“name”>
<% if (name == null) { %>
ゲストさん
<% } else { %>
<%= name %>さん
<% } %></span>	
5
Seleniumあるある	

「このタグにidかclassを付けておいて
くれれれば、ややこしいxpathを
メンテしなくて済むのになー」	

6
もしもさっきのJSPをMixer2で書いていたら	
Mixer2のテンプレートは純粋なXHTMLとCSS	
こんにちは<span id=“name”>ゲスト</span>さん

値の埋め込みやロジックは普通のJava	
Span span = html.getById(“name”, Span.class);
span.unsetContent();
span.getContent.add(“ヤマダ”);
// これで <span id=“name”>ヤマダ</span>さん
// が出力される
7
Mixer2のメリット	

htmlモックアップを
JSPに書き変えずに
そのまま使える	
※あとでデモでお見せします。	
8
Slenium2ユーザから見たメリット	

Mixer2で作った画面は、
id属性、class属性が
タグに付けられている
ことが自然と多くなるため
Seleniumを書くときに
助かる。	
9
demo	
https://github.com/nabedge/mixer2-sample/
tree/master/mixer2-fruitshop-springmvc	

10
Mixer2の動作原理	
1.  Mixer2はXHTMLパーサーである。
2.  Mixer2はXHTMLジェネレーターである。
3.  要するに、Mixer2はObject/XHTMLマッパーである。

XHTML	
<html>	
 
	
 	
 <head>	
 
	
 	
 …	
 
	
 	
 </head>	
 
	
 	
 <body>	
 
	
 	
 	
 …	
 
	
 	
 </body>	
 
</html>	
 

Javaオブジェクト	
loadHtmlTemplate	

Html	

Mixer2
Head	
 Body	
saveToString	
11
ご静聴ありがとうございました	

よろしくね!
mixer2.org	

12

Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク