<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>技術ブログ &#124; 株式会社クラウディア &#187; HTML</title>
	<atom:link href="https://cloudear.jp/blog/?cat=14&#038;feed=rss2" rel="self" type="application/rss+xml" />
	<link>https://cloudear.jp/blog</link>
	<description>クラウド専門の業務システム・社内ツール開発</description>
	<lastBuildDate>Fri, 12 Nov 2021 05:00:35 +0000</lastBuildDate>
	<language>ja</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.0.1</generator>
	<item>
		<title>レスポンシブデザインを導入するための手順</title>
		<link>https://cloudear.jp/blog/?p=1697</link>
		<comments>https://cloudear.jp/blog/?p=1697#comments</comments>
		<pubDate>Wed, 14 Oct 2015 01:29:56 +0000</pubDate>
		<dc:creator><![CDATA[nakanishi]]></dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[フロントエンド]]></category>

		<guid isPermaLink="false">https://cloudear.jp/blog/?p=1697</guid>
		<description><![CDATA[レスポンシブウェブデザインの基礎知識と、実際に導入する際の手順をご紹介します。 レスポンシブデザインって？ 現在では、さまざまなデバイスが登場していますよね。例えば、ひとくちにスマホと言ってもディスプレイサイズはさまざま [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>レスポンシブウェブデザインの基礎知識と、実際に導入する際の手順をご紹介します。</p>
<h2>レスポンシブデザインって？</h2>
<p>現在では、さまざまなデバイスが登場していますよね。例えば、ひとくちにスマホと言ってもディスプレイサイズはさまざま。このように多岐に渡るディスプレイサイズに対応するために、レスポンシブウェブデザインを採用しているウェブサイトが増えてきました。</p>
<p><span id="more-1697"></span></p>
<p>レスポンシブウェブデザインとは、さまざまなディスプレイサイズに対応するためのウェブ技術のこと。簡単に言うと、ディスプレイサイズによって適用するCSSを切り替えます。これによって、ユーザーが使っているデバイスごとに、最適なレイアウトでウェブページが表示されるのです。</p>
<div id="attachment_1745" style="width: 1059px" class="wp-caption alignnone"><img class="wp-image-1745" src="https://cloudear.jp/blog/wp-content/uploads/2015/09/135b6cb9783184281c3c474fc0589adb.png" alt="レスポンシブウェブデザインのイメージ図" width="1049" height="699" /><p class="wp-caption-text">デバイスごとに異なるスタイル（CSS）を適用させる</p></div>
<p>レスポンシブウェブデザインのメリット・デメリットをまとめておきましょう。</p>
<h3>メリット</h3>
<ul>
<li>デバイスによらず同一のコンテンツを提供できる</li>
<li>SEOに強い</li>
<li>シェアに強い</li>
<li>保守管理が楽になる</li>
</ul>
<h3>デメリット</h3>
<ul>
<li>ページの表示に時間がかかる（場合がある）</li>
<li>制作工数・コストがかかる（場合がある）</li>
</ul>
<p>レスポンシブウェブデザインの最大のメリットは、全てのユーザーに同一のコンテンツを提供できることですね。また、SEOやシェアに強いことでも知られています。レスポンシブウェブデザインでは各ページのHTMLファイルが一つなので、Googleによるインデックスがばらけないことが理由です。</p>
<p>一方で、つくり方によっては制作コストがかさんだり、ページの表示スピードが遅くなることもあります。メリット・デメリットを把握した上で、うまく活用していきたいものですね。</p>
<h2>レスポンシブデザイン導入の手順</h2>
<p>レスポンシブデザインを導入する方法はいくつかありますが、今回はCSS3のmedia queryを利用した手順をご紹介していきましょう。</p>
<h3>ステップ１．ブレークポイントを指定する</h3>
<p>レスポンシブデザインのポイントは、デバイスのディスプレイサイズによってCSSを切り替えること。CSSファイルを別個に用意してもいいですし、一つのCSSファイル内にまとめてもかまいません。</p>
<p>さて、CSSを切り替える方法ですが、CSS3から追加されたmedia queryを使います。例えば、下記のように記述すれば、iPad（縦、ランドスケープ）に対してのみ適用させるCSSを記述することができます。</p>
<p>&nbsp;</p>
<pre class="lang:css decode:true">@media only screen
    and (min-device-width: 768px)
    and (max-device-width: 1024px)
    and (orientation: portrait) {
    /* CSS */
}</pre>
<p>&nbsp;</p>
<p>レスポンシブデザインを上手く構築するには、ディスプレイサイズごとに的確にCSSを分けることです。適用するCSSを切り替える「ブレークポイント」を、正確に指定することが肝要です。</p>
<h3>ステップ２．CSSスタイルを記述する</h3>
<p>次に、上で設定した各画像サイズごとに、スタイルを記述します。コツとしては、リキッドレイアウトでデザインすることです。各要素の横幅をpx（ピクセル）指定で固定するのではなく、%（パーセント）指定を使って可変レイアウトにしておきましょう。</p>
<p>スタイルの可変指定が漏れてしまっていると、その要素が原因となってレイアウト崩れ（要素がはみ出てしまったり）を起こしてしまうことがあります。画像のサイズ指定については特に注意が必要なので、よく配慮しましょう。</p>
<h3>ステップ３．viewportを指定する</h3>
<p>さて、CSSの準備ができたら、HTMLから読み込みましょう。なおステップ１ではCSS内でスタイルを切り替えましたが、HTMLファイルから読み込むCSSファイルを切り替えることも可能です。デバイスごとにCSSファイルを用意している場合は、この方法でスタイルを適用させましょう。</p>
<pre class="lang:default decode:true ">&lt;link rel="stylesheet" media="screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation: portrait)" href="ipad-portrait.css" /&gt;</pre>
<p>&nbsp;</p>
<p>最後に、viewportで表示領域を指定して完了です。</p>
<pre class="lang:default decode:true">&lt;meta name="viewport" content="width=device-width; initial-scale=1.0" /&gt;</pre>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>https://cloudear.jp/blog/?feed=rss2&#038;p=1697</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thymeleafの「xml.sax.SAXException」を回避する方法</title>
		<link>https://cloudear.jp/blog/?p=1719</link>
		<comments>https://cloudear.jp/blog/?p=1719#comments</comments>
		<pubDate>Wed, 30 Sep 2015 01:05:59 +0000</pubDate>
		<dc:creator><![CDATA[masa]]></dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[フレームワーク]]></category>
		<category><![CDATA[フロントエンド]]></category>

		<guid isPermaLink="false">https://cloudear.jp/blog/?p=1719</guid>
		<description><![CDATA[みなさんこんにちは masa です。Java のフレームワークは何かと Spring ばかり触っていますが、久しぶりにプロジェクトをやってみると忘れてしまってる事ばかり（汗 Spring をやっている方ならテンプレートエ [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>みなさんこんにちは masa です。Java のフレームワークは何かと Spring ばかり触っていますが、久しぶりにプロジェクトをやってみると忘れてしまってる事ばかり（汗</p>
<p>Spring をやっている方ならテンプレートエンジンは Thymeleaf をお使いだと思いますが、以前ハマったポイントを記事に書き忘れていたので今回備忘録として残しておきます。</p>
<p><span id="more-1719"></span></p>
<p><span style="font-size: 12pt;"><strong>HTML を書き終わり、プロジェクトをビルドして画面を開こうとすると・・・エラーが発生</strong></span></p>
<pre class="theme:dark-terminal lang:default decode:true ">2015-09-29 22:47:58.030 ERROR 3372 --- [tp2117193231-14] o.thymeleaf.templateparser.ErrorHandler  : [THYMELEAF][qtp2117193231-14] Fatal error during parsing

org.xml.sax.SAXParseException: The element type "link" must be terminated by the matching end-tag "&lt;/link&gt;".
	at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
	at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
（以下スタックトレース）
</pre>
<p>&nbsp;</p>
<p><span style="font-size: 14pt; color: #ff0000;"><strong>Thymeleaf の HTML 解析は XMLチェックが走るため、閉じタグを省略したような書き方だと弾かれます。</strong></span></p>
<p>これをどうにかしないといつまでたっても画面自体が表示されません。今さら HTML を書き直すのはさすがに厳しいので以下の手順で回避しましょう。</p>
<p>&nbsp;</p>
<p><span style="font-size: 14pt;"><strong>1．Thymeleaf のパース（構文解析）設定をゆるく変える</strong></span></p>
<p>Thymeleafの設定をクラスを使って変えることもできますが、今回は application.properties ファイルを作って設定を入れてみます。<br />
以下のように src/main/resources 直下に、空の application.properties ファイルを作ってください。</p>
<p><a href="https://cloudear.jp/blog/wp-content/uploads/2015/09/thl1.png"><img class="alignnone size-full wp-image-1721" src="https://cloudear.jp/blog/wp-content/uploads/2015/09/thl1.png" alt="thl1" width="406" height="526" /></a></p>
<p>&nbsp;</p>
<p>その中に以下の設定を書いて保存します。</p>
<pre class="theme:dark-terminal lang:default decode:true ">spring.thymeleaf.mode=LEGACYHTML5
spring.thymeleaf.cache=false
spring.thymeleaf.encoding=UTF-8</pre>
<p><strong>テンプレートモードを「LEGACYHTML5」へ変更してやることで HTML 解析がゆるくなります。<br />
ひきつづき次の手順2．に進んでください。</strong></p>
<p>&nbsp;</p>
<p><span style="font-size: 14pt;"><strong>2．NekoHTML ライブラリを入れる</strong></span></p>
<p>今回 Maven から NekoHTML を入れる方法をご紹介します。ちなみに NekoHTML は HTMLパーサーです。<br />
ネコというネーミングが気になりますが・・・。</p>
<p>Maven の pom.xml に以下を追記</p>
<pre class="lang:default decode:true ">&lt;dependency&gt;
  &lt;groupId&gt;net.sourceforge.nekohtml&lt;/groupId&gt;
  &lt;artifactId&gt;nekohtml&lt;/artifactId&gt;
  &lt;version&gt;1.9.22&lt;/version&gt;
&lt;/dependency&gt;</pre>
<p>ライブラリを入れるために一度プロジェクトをビルドしてください。</p>
<p>&nbsp;</p>
<p>これで Thymeleaf のパーサーがゆるい設定に変わりますので、あとはいつもどおりプロジェクトを実行してください。パーサーチェックが通って画面が無事表示されるはずです。</p>
<p>&nbsp;</p>
<p><span style="font-size: 14pt;"><strong>おまけ</strong></span></p>
<p>そういえば前にクラスから Thymeleaf の設定をしようとして書いたコードが残っていました。<br />
実行しても設定が変わらなかったのでどなたか解決策をご存知でしたら教えてくださいｗ</p>
<pre class="lang:default decode:true">@Configuration
public class ThymeleafConfig {
    @Bean
    public ThymeleafViewResolver thymeleafViewResolver() {
        ServletContextTemplateResolver servletContextTemplateResolver = new ServletContextTemplateResolver();
//        servletContextTemplateResolver.setPrefix("/webapp/templates/");
        servletContextTemplateResolver.setSuffix(".html");
        servletContextTemplateResolver.setTemplateMode("LEGACYHTML5");
        servletContextTemplateResolver.setCharacterEncoding("UTF-8");
        servletContextTemplateResolver.setCacheable(false);
 
        SpringTemplateEngine springTemplateEngine = new SpringTemplateEngine();
        springTemplateEngine.setTemplateResolver(servletContextTemplateResolver);
 
        ThymeleafViewResolver thymeleafViewResolver = new ThymeleafViewResolver();
        thymeleafViewResolver.setCharacterEncoding("utf-8");
        thymeleafViewResolver.setTemplateEngine(springTemplateEngine);
 
        return thymeleafViewResolver;
    }
}</pre>
<p>&nbsp;</p>
<p>それでは今日はここまで。Thymeleaf使いの方の一助になれば幸いです。</p>
]]></content:encoded>
			<wfw:commentRss>https://cloudear.jp/blog/?feed=rss2&#038;p=1719</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Selenium WebDriver で UIテストをプログラム化</title>
		<link>https://cloudear.jp/blog/?p=1066</link>
		<comments>https://cloudear.jp/blog/?p=1066#comments</comments>
		<pubDate>Sun, 03 May 2015 06:45:58 +0000</pubDate>
		<dc:creator><![CDATA[masa]]></dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[フロントエンド]]></category>
		<category><![CDATA[プログラム]]></category>

		<guid isPermaLink="false">https://cloudear.jp/blog/?p=1066</guid>
		<description><![CDATA[みなさんこんにちは、masa です。前回は GUI 画面からブラウザ操作を記録して再生できる Selenium Builder をご紹介しましたが、今回はプログラムからブラウザ操作する Selenium WebDrive [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>みなさんこんにちは、masa です。前回は GUI 画面からブラウザ操作を記録して再生できる Selenium Builder をご紹介しましたが、今回はプログラムからブラウザ操作する <strong>Selenium WebDriver（セレニウムウェブドライバー）</strong> を使って UIテストします。<br />
<span id="more-1066"></span></p>
<p>Selenium WebDriver が対応している言語は<strong> Java, C#, Ruby, Python, Node.js</strong> ですが、php-webdriver-bindings といったサードパーティのライブラリを使えば <strong>PHP</strong> でも書けるようになります。</p>
<p>今回は Java からブラウザテストを実行していきます。</p>
<p>&nbsp;</p>
<p><span class="hcss1" style="font-size: 14pt;"><strong> Java 用ライブラリをダウンロード</strong></span></p>
<p><strong><a href="http://www.seleniumhq.org/download/" target="_blank">Seleniumダウンロードサイト</a></strong>の赤丸で囲ったところをクリックするとライブラリの詰まった zip ファイルがダウンロードできます。<a href="https://cloudear.jp/blog/wp-content/uploads/2015/05/swd1.png"><img class="alignnone size-full wp-image-1070" src="https://cloudear.jp/blog/wp-content/uploads/2015/05/swd1.png" alt="swd1" width="1315" height="843" /></a></p>
<p>&nbsp;</p>
<p>デスクトップにダウンロードしたら、zip ファイルを解凍しましょう。<br />
<a href="https://cloudear.jp/blog/wp-content/uploads/2015/05/swd2.png"><img class="alignnone size-full wp-image-1071" src="https://cloudear.jp/blog/wp-content/uploads/2015/05/swd2.png" alt="swd2" width="851" height="516" /></a></p>
<p>解凍が終わったら、お使いの Java IDE から一般的な Java プロジェクトを作成して、<strong>selenium-java-2.45.0.jar</strong> と libsフォルダの中の<strong> jar ファイル</strong>をすべてライブラリとして読み込みます。（画面は NetBeans）<br />
<a href="https://cloudear.jp/blog/wp-content/uploads/2015/05/swd3.png"><img class="alignnone size-full wp-image-1072" src="https://cloudear.jp/blog/wp-content/uploads/2015/05/swd3.png" alt="swd3" width="330" height="742" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span class="hcss1" style="font-size: 14pt;"><strong>さっそくブラウザを開いて特定のサイトにアクセスしてみる</strong></span></p>
<p>おもむろに以下のコードを書いて実行してみてください。</p>
<pre class="lang:default decode:true">package seleniumwebdrivertest;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

/**
 *
 * @author masa
 */
public class SeleniumWebDriverTest {

    public static void main(String[] args) {
        WebDriver driver = new FirefoxDriver();
        driver.get("https://cloudear.jp");
    }
    
}</pre>
<p>FireFox が起動して弊社のサイトが表示されます（宣伝？ｗ）</p>
<p>ここから作りこんでファイルをダウンロードしたりフォームを埋めて送信したり、テストを書いていくわけです。一から書き込んでいくのは大変なので、前回取り上げた Selenium Builder で操作を記録して、エクスポートしたファイルを調整していくのが良いかと思います。（参照： <a title="Selenium Builder で UIテストを高速化" href="https://cloudear.jp/blog/?p=1042">Selenium Builder で UIテストを高速化</a>）</p>
<p>いかがでしたか？今日はプログラムから UIテストを自動実行する Selenium WebDriver というライブラリをご紹介しました。日々、フロントエンドのテストに追われているエンジニアの方の一助になれば幸いです。</p>
]]></content:encoded>
			<wfw:commentRss>https://cloudear.jp/blog/?feed=rss2&#038;p=1066</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Selenium Builder で UIテストを高速化</title>
		<link>https://cloudear.jp/blog/?p=1042</link>
		<comments>https://cloudear.jp/blog/?p=1042#comments</comments>
		<pubDate>Sun, 26 Apr 2015 14:29:35 +0000</pubDate>
		<dc:creator><![CDATA[masa]]></dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[フロントエンド]]></category>
		<category><![CDATA[プログラム]]></category>

		<guid isPermaLink="false">https://cloudear.jp/blog/?p=1042</guid>
		<description><![CDATA[みなさんこんにちは、masa です。今日は UIテストツール Selenium Builder（セレニウムビルダー） の使い方をご紹介します。Web アプリケーションの会員ログインのテストやお問い合わせフォームの入力・送 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>みなさんこんにちは、masa です。今日は UIテストツール <strong>Selenium Builder（セレニウムビルダー）</strong> の使い方をご紹介します。Web アプリケーションの会員ログインのテストやお問い合わせフォームの入力・送信テストなどを毎回手動で行うのは大変ですよね。<br />
<span id="more-1042"></span></p>
<p><span style="color: #ff0000;"><strong>※2015年5月現在の最新版「Firefox 38.0.1」だと Selenium のエクスポートができないようです。もしお使いの FireFox が最新版である場合は、「<a href="http://osdn.jp/projects/sfnet_portableapps/downloads/Mozilla%20Firefox,%20Portable%20Ed./Mozilla%20Firefox,%20Portable%20Edition%2037.0.2/FirefoxPortable_37.0.2_Japanese.paf.exe/" target="_blank">FireFox Portable版37.02</a>」で Selenium Builder をお試しください。</strong></span></p>
<p>Selenium Builder とは 以前の Selenium IDE の後継にあたる FireFox 用プラグインソフトです。例えばお問い合わせフォームの機能をテストしたいとします。</p>
<ol>
<li>名前を入力</li>
<li>メールアドレスを入力</li>
<li>電話番号を入力</li>
<li>都道府県を選択</li>
<li>住所を入力</li>
<li>送信ボタンをクリック</li>
</ol>
<p>これだけでも何回も手で操作するのはキツイです。Selenium Builder を使えば、手動でやった操作を REC で記録し、何度でも同じ操作を再生することができるのです。</p>
<p>また、記録した操作は Java, PHP, Ruby, Python, C# などのスクリプトに書き出し、Selenium Webdriver を使ってプログラムからテスト実行することもできます。<br />
逆に言えば本来スクリプトで操作内容を書いて SeleniumDriver から実行するのですが、それが大変なので GUI 画面から簡単に出来るようにしたのが、この Selenium Builder なわけです。</p>
<p><strong><span class="hcss1" style="font-size: 14pt;">　Selenium Builder をインストールする</span></strong></p>
<p>まずは FireFox を起動して、<strong><a href="https://saucelabs.com/builder" target="_blank">公式サイト</a>　</strong>からプラグインをダウンロードします。<br />
<a href="https://cloudear.jp/blog/wp-content/uploads/2015/04/sb1.png"><img class="alignnone size-full wp-image-1048" src="https://cloudear.jp/blog/wp-content/uploads/2015/04/sb1.png" alt="sb1" width="1398" height="868" /></a></p>
<p>FireFox のプラグインとしてインストールするダイアログが画面がでたらそのままインストール続行してください。インストールが終わるとブラウザの再起動を求められます。</p>
<p>ブラウザ再起動が終わったら FireFox のメニューから「開発ツール」を選択→「Launch Selenium Builder」を選択します<br />
<a href="https://cloudear.jp/blog/wp-content/uploads/2015/04/sb2.png"><img class="alignnone size-full wp-image-1049" src="https://cloudear.jp/blog/wp-content/uploads/2015/04/sb2.png" alt="sb2" width="1398" height="868" /></a></p>
<p>&nbsp;</p>
<p><strong><span class="hcss1" style="font-size: 14pt;">　まずは簡単な操作を記録して再生してみる</span></strong></p>
<p>Selenium Builder が起動したら、Selenium2 のボタンをクリックすると記録がスタートします。<br />
<span style="font-size: 8pt;">※Selenium1 だと旧 SeleniumRC でのスクリプト作成になりますので非推奨</span><br />
<a href="https://cloudear.jp/blog/wp-content/uploads/2015/04/sb3.png"><img class="alignnone size-full wp-image-1050" src="https://cloudear.jp/blog/wp-content/uploads/2015/04/sb3.png" alt="sb3" width="568" height="640" /></a></p>
<p>ちなみに Slenium 対象のタブはふちが緑色になります。<br />
<a href="https://cloudear.jp/blog/wp-content/uploads/2015/04/sb4.png"><img class="alignnone size-full wp-image-1051" src="https://cloudear.jp/blog/wp-content/uploads/2015/04/sb4.png" alt="sb4" width="259" height="91" /></a></p>
<p>&nbsp;</p>
<p>では以下の操作をしてみます。</p>
<p><span style="font-size: 12pt;"><strong>1. Google を開く</strong></span></p>
<p><span style="font-size: 12pt;"><strong>2. 検索バーに「ボラボラ島」と入力</strong></span></p>
<p><a href="https://cloudear.jp/blog/wp-content/uploads/2015/04/sb5.png"><img class="alignnone size-full wp-image-1053" src="https://cloudear.jp/blog/wp-content/uploads/2015/04/sb5.png" alt="sb5" width="1593" height="857" /></a></p>
<p>&nbsp;</p>
<p><span style="font-size: 12pt;"><strong>3. 画像検索結果で一番目の写真をクリック</strong></span></p>
<p><a href="https://cloudear.jp/blog/wp-content/uploads/2015/04/sb6.png"><img class="alignnone size-full wp-image-1054" src="https://cloudear.jp/blog/wp-content/uploads/2015/04/sb6.png" alt="sb6" width="1593" height="854" /></a></p>
<p>&nbsp;</p>
<p><strong><span style="font-size: 12pt;">4. 操作が終わったら Selenium の画面で「Stop recording」をクリックして記録を止めます。<br />
</span></strong><br />
<a href="https://cloudear.jp/blog/wp-content/uploads/2015/04/sb7.png"><img class="alignnone size-full wp-image-1055" src="https://cloudear.jp/blog/wp-content/uploads/2015/04/sb7.png" alt="sb7" width="568" height="640" /></a></p>
<p>&nbsp;</p>
<p><strong><span style="font-size: 12pt;">5. 記録した操作を再生します。</span></strong><strong><span style="font-size: 12pt;">Runメニューから「Run test locally」をクリックすると再生が開始されます。</span></strong></p>
<p><a href="https://cloudear.jp/blog/wp-content/uploads/2015/04/sb8.png"><img class="alignnone size-full wp-image-1056" src="https://cloudear.jp/blog/wp-content/uploads/2015/04/sb8.png" alt="sb8" width="568" height="640" /></a></p>
<p>自動的に操作されましたか？ちょっと感動しますね。もっと複雑な操作の場合はスクリプトで調整する必要がありますが、ざっくりと雛形を作るにはとても便利なツールだと思います。</p>
<p>最後にこの記録をスクリプトに書き出してみましょう。今回はネイティブな Java にエクスポートしてみます。<br />
Fileメニューから「Export」をクリックします。<br />
<a href="https://cloudear.jp/blog/wp-content/uploads/2015/04/sb9.png"><img class="alignnone size-full wp-image-1057" src="https://cloudear.jp/blog/wp-content/uploads/2015/04/sb9.png" alt="sb9" width="568" height="640" /></a></p>
<p>お好きな言語を選択してください。<br />
<a href="https://cloudear.jp/blog/wp-content/uploads/2015/04/sb101.png"><img class="alignnone size-full wp-image-1061" src="https://cloudear.jp/blog/wp-content/uploads/2015/04/sb101.png" alt="sb10" width="568" height="640" /></a></p>
<p>ちなみにこれが Java で書き出したソースコードです。</p>
<pre class="lang:default decode:true ">import java.util.concurrent.TimeUnit;
import java.util.Date;
import java.io.File;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.*;
import static org.openqa.selenium.OutputType.*;

public class sb {
    public static void main(String[] args) throws Exception {
        FirefoxDriver wd;
        wd = new FirefoxDriver();
        wd.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
        wd.get("https://www.google.co.jp/?gws_rd=ssl");
        wd.findElement(By.id("lst-ib")).click();
        wd.findElement(By.id("lst-ib")).clear();
        wd.findElement(By.id("lst-ib")).sendKeys();
        wd.findElement(By.id("lst-ib")).click();
        wd.findElement(By.id("lst-ib")).sendKeys("\n");
        wd.findElement(By.id("lst-ib")).click();
        wd.findElement(By.id("lst-ib")).clear();
        wd.findElement(By.id("lst-ib")).sendKeys("ボラボラ島");
        wd.findElement(By.id("lst-ib")).click();
        wd.findElement(By.id("lst-ib")).sendKeys("\n");
        wd.findElement(By.name("imgthumb1")).click();
        wd.quit();
    }
    
    public static boolean isAlertPresent(FirefoxDriver wd) {
        try {
            wd.switchTo().alert();
            return true;
        } catch (NoAlertPresentException e) {
            return false;
        }
    }
}</pre>
<p>このスクリプトをいじって Selenium Webdriver でプログラムから実行することも可能です。</p>
<p>いかがでしたか？今日は UIテストツールである Selenium Builder を取り上げてみました。もしこの記事に反響があれば Selenium Webdriver についても書いてみたいと思います。</p>
]]></content:encoded>
			<wfw:commentRss>https://cloudear.jp/blog/?feed=rss2&#038;p=1042</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spring Boot で『Thymeleaf』 テンプレートを使う</title>
		<link>https://cloudear.jp/blog/?p=799</link>
		<comments>https://cloudear.jp/blog/?p=799#comments</comments>
		<pubDate>Sun, 08 Mar 2015 14:45:50 +0000</pubDate>
		<dc:creator><![CDATA[masa]]></dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[プログラム]]></category>

		<guid isPermaLink="false">https://cloudear.jp/blog/?p=799</guid>
		<description><![CDATA[みなさんこんにちは、masa です。今日は数ある Java テンプレートの中でも Spring が推奨しているという Thyme leaf（タイムリーフ）を取り上げてみたいと思います。ちなみに Thymeleaf とは植 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>みなさんこんにちは、masa です。今日は数ある Java テンプレートの中でも Spring が推奨しているという Thyme leaf（タイムリーフ）を取り上げてみたいと思います。ちなみに Thymeleaf とは植物ハーブのことらしいです。<br />
<span id="more-799"></span></p>
<p>Thymeleaf の話の前に・・・Spring MVC だと xml ファイルで設定をするのが常ですが、Spring Boot を使うと設定がスクリプトとして書かれ、@EnableAutoConfiguration というアノテーションをつけるだけで設定が自動的に読み込まれます。</p>
<p>まずは、Spring Boot と Spring Boot 用の Thymeleaf ライブラリを Maven からインストールします。</p>
<pre class="lang:default decode:true">        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
            &lt;artifactId&gt;spring-boot-starter-web&lt;/artifactId&gt;        
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
            &lt;artifactId&gt;spring-boot-starter-thymeleaf&lt;/artifactId&gt;
        &lt;/dependency&gt;
</pre>
<pre class="lang:default decode:true ">        &lt;plugins&gt;
            &lt;plugin&gt;
                &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
                &lt;artifactId&gt;spring-boot-maven-plugin&lt;/artifactId&gt;
            &lt;/plugin&gt;
        &lt;/plugins&gt;</pre>
<p>次に、Controller を以下のように実装して、GET を受けられるようにします↓</p>
<pre class="lang:default decode:true">package jp.cloudear.spring_boot.controller;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 *
 * @author masa
 */
@Controller
@EnableAutoConfiguration
public class App {
   
    @RequestMapping("/hello")
    public String hello(@RequestParam(value="name", required=false, defaultValue="masa") String name, Model model) {
        model.addAttribute("name", name);
	return "hello";
    }

    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
    
}</pre>
<p>そして、src/main/resources/templates にhello.html を作成します↓</p>
<pre class="lang:default decode:true ">&lt;!DOCTYPE HTML&gt;
&lt;html xmlns:th="http://www.thymeleaf.org"&gt;
&lt;head&gt;
    &lt;title&gt;Thymeleaf で出力しますよ&lt;/title&gt;
    &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;p th:text="'こんにちは, ' + ${name} + 'さん!'" /&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>ビルドしたら作った URL にアクセスします↓</p>
<pre class="lang:default decode:true ">http://localhost:8080/hello</pre>
<p>そうすると以下のようにページが表示されました。</p>
<p><a href="https://cloudear.jp/blog/wp-content/uploads/2015/03/thymeleaf_test.png"><img class="alignnone size-full wp-image-886" src="https://cloudear.jp/blog/wp-content/uploads/2015/03/thymeleaf_test.png" alt="thymeleaf_test" width="889" height="536" /></a></p>
<p>&nbsp;</p>
<p>いかがでしたか？今回は簡単ではありますが、Spring Boot から Thymeleaf を使ってみました。<a href="http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf_ja.html" target="_blank">Thymeleaf日本語</a>のサイトもありますので是非チェックしてみてください。</p>
]]></content:encoded>
			<wfw:commentRss>https://cloudear.jp/blog/?feed=rss2&#038;p=799</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
