package jp.sourceforge.cfneo.at4ie2;

public class TODO {

	////////////////////////////////////////////////////////////////////////////
	// TODO Element Locators
	/*
Element Locator とは、Selenium において、コマンドが参照するhtml 要素を特定するものです。Selenium ではElementLocator として以下の方法を提供しています。これはhtml の要素全般に対して使える方法です。
    * id		
      書式 	id=id 属性値
      id 属性で指定された要素を選択します。
    * name
      書式 	name=name 属性値
      name 属性で指定された要素のうち、最初に合致したものを選択します。
    * identifier
      書式 	identifier=id 属性値またはname 属性値
      id 属性で指定された要素を選択し、id 属性で合致するものがなければname 属性で指定された要素のうち最初に合致したものを選択します。
    * TODO	dom
      書式 	dom=javascript 表現法
      HTML DocumentObjectModel(DOM)のJavascript Traversal モジュールを使って要素を見つけます。javascript 表現法で指定するDOM のロケータは"document."で始まらなければなりません。
      (例)
      dom=document.forms['myForm'].myDropdown
      dom=document.images[56]
    * TODO	xpath
      書式 	xpath=xpath 表現
      XPath 表現を使用して要素の場所を特定します。XPath 表現は"//"で始まらなければなりません。
      (例)
      xpath=//img[@alt='The image alt text']
      xpath=//table[@id='table1']//tr[4]/td[2]
    * TODO	link
      書式 	link=リンクの文字列pattern
      指定された文字列pattern と合致するテキストを含むリンク(anchor)要素を選択します。
      (例)
      link=The link text
ElementLocator のprefix("xxx=")が無い場合、Selenium は以下のものと解釈して動作します。
"document."から始まっている場合 	dom=と解釈して動作
"//"から始まっている場合 	xpath=と解釈して動作
それ以外
	 */

	////////////////////////////////////////////////////////////////////////////
	// TODO Select Option Specifiers
	/*
String-match Patterns
文字列のマッチングとして、様々なpattern 構文が利用可能です。
    * TODO	glob
      書式 	glob:pattern
      "glob"パターン(別名"wildmat"パターン)での文字列マッチングです。"Glob"は一種の定正規表現で、コマンドラインシェルで典型的に使用されます。"*"は任意の複数の文字を表し、"?"は任意の1 文字を表します。Glob パターンは文字列全体に対してマッチングます。
    * TODO	regexp
      書式 	regexp:正規表現
      正規表現を用いた文字列マッチングです。JavaScript の正規表現をフルに使用可能です。
    * TODO	exact
      書式 	exact:文字列
      ワイルドカードを使用せずに、正確に同一の文字列マッチングを行います。
prefix("xxx:")が無い場合、Selenium は"glob"パターンであると仮定して動作します。
	 */

	////////////////////////////////////////////////////////////////////////////
	// TODO String-match Patterns
	/*
SelectOption 指示子はHTML のSelect 要素のoption を指定するいくつかの方法を提供します。例えば、特定のoption を選択したり、選択されたoption が仕様を満たしているかどうかを検証するための方法です。SelectOption 指示子にはいくつかの形式があります。
    * TODO	label
      書式 	label=ラベルの文字列pattern
      option のlabel 属性、即ち表示されている文字列を基にマッチングします。
      (例)
      label=regexp:^[Oo]ther
    * TODO	value
      書式 value=value の文字列pattern
      option のvalue 属性を基にマッチングします。
      (例)
      value=other
    * TODO	id
      書式 	id=id 属性値
      option のid 属性を基にマッチングします。
      (例)
      id=option1
    * TODO	index
      書式 	index=index 値
      option のインデックス(ゼロから開始)でマッチングします。
      (例)
      index=2
prefix（xxx=）が無い場合、デフォルトの動作はlabel に対してのみマッチングします。
	 */

	////////////////////////////////////////////////////////////////////////////
	// TODO コマンド　Action編
	/*
Action はアプリケーションに対して何らかの動作を行うようにSelenium に指示します。一般にこれらはユーザが行う何らかの動作を表します。
多くのAction コマンドは"AndWait"接尾語を付けることができます。この接尾語は「Action を実行した後、ブラウザがサーバに通信を行って新しいページがロードされるの(次のコマンドを実行せずに)待つ」という意味です。この動作様式に対する例外は"open"コマンドで、デフォルトの動作でページがロードされるのを待ちます。
(※訳注：原文では"open"と"click"となっていますが、"open"だけの誤記だそうです)
    * open
      TestRunner のtest frame にて、指定したURL を開きます。相対パス又は絶対パスの両者とも指定可能です。
      注）ブラウザにおけるセキュリティ制限(クロスサイトスクリプティング対策)の為、URLはSelenium と同じサイト上になければなりません。
      (書式)
      コマンド 	ターゲット 	バリュー
      open 	url 	なし
      (例)
      open 	/mypage
      open 	http://localhost/
    * click/clickAndWait
      リンク、ボタン、チェックボックス、ラジオボタンをクリックします。
      通常のリンクのようにクリックすると新たなページに遷移する場合は、"clickAndWait"を使用して下さい。
      (書式)
      コマンド 	ターゲット 	バリュー
      click 	クリックする要素のelementLocator 	なし
      (例)
      click 	aCheckbox
      clickAndWait 	submitButton
      clickAndWait 	anyLink
      (注)Selenium は、alert()メソッド又はconfirm()メソッドによって出現したポップアップダイアログに対して、常に自動的にクリックします。(例外はSelenium が操作する前に"onload"中にポップアップが出現した場合です)
      あなたがポップアップダイアログを期待しているかどうかをSelenium に対して指示するためにはverify(assert)Alert コマンド又はverify(assert)Confirmation コマンドを使用しなければなりません。あなたは次の確認ダイアログにおいて"OK"をクリックするかわりに"cancel"をクリックするために chooseCancelOnNextConfirmation コマンドを使用することもできます。
    * type
      テキストボックスなどの入力フィールドに値をタイプ(入力)します。
      コンボボックスやチェックボックスのvalue を設定するためにも使うことができます。その場合は表示されている文字ではなく、選択されているoption のvalue 属性を指定します。
      (書式)
      コマンド 	ターゲット 	バリュー
      type 	入力するフィールドのelementLocator 	入力する値
      (例)
      type 	nameField 	John Smith
      typeAndWait 	textBoxThatSubmitsOnChange 	newValue
    * select
      option 識別子に基づいてドロップダウン形式のoption を選択します。もし識別子が複数のoption に合致する場合は、最初に合致したものが選択されます。
      (書式)
      コマンド 	ターゲット 	バリュー
      select 	dropdown フィールドのelementLocator 	option 識別子
      (例)
      select 	dropDown 	Australian Dollars
      select 	dropDown 	index=0
      selectAndWait 	currencySelector 	value=AUD
      selectAndWait 	currencySelector 	label=Aus*lian D*rs
    * TODO	selectWindow
      ポップアップウィンドウを選択します。一度ポップアップウィンドウが選択されると、全てのコマンドはそのウィンドウに対して実行されます。元のメインウィンドウを再び選択するためには、ターゲットにnull を指定します。
      (書式)
      コマンド 	ターゲット 	バリュー
      selectWindow 	ウィンドゥのID 	なし
      (例)
      selectWindow 	myPopupWindow
      selectWindow 	null
    * goBack
      ブラウザの"戻る"ボタンをユーザがクリックすることをシミュレートします。
      (書式)
      コマンド 	ターゲット 	バリュー
      goBack 	なし 	なし
      (例)
      goBack
    * close
      ポップアップしたウィンドウのタイトルバーで"閉じる"ボタンをクリックすることをシミュレートします。
      (書式)
      (書式)
      コマンド 	ターゲット 	バリュー
      close 	なし 	なし
      (例)
      close
    * pause
      テストスクリプトの実行を特定時間ポーズします。これはスクリプトのデバッグや、サーバーサイドの何らかのアクションを待つ場合に有効です。
      (書式)
      コマンド 	ターゲット 	バリュー
      pause 	ミリ秒 	なし
      (例)
      pause 	2000
      pause 	5000
    * TODO	fireEvent
      "onEvent"ハンドラに一致するトリガーを起動するために、明示的にイベントをシミュレートします。
      (書式)
      コマンド 	ターゲット 	バリュー
      fireEvent 	elementLocator 	イベント名
      (例)
      fireEvent 	textField 	focus
      fireEvent 	dropDown 	blur
    * TODO	waitForValue
      指定された入力フィールド(例えばhidden フィールド)が指定された値を持つのを待ちます。入力フィールドが既に値を持っていれば直ちに動作成功となります。これは値のポーリングによって実装されています。
      (注)入力フィールドが指定された値を絶対に持たない場合、無限中断を引き起こします。
      (書式)
      コマンド 	ターゲット 	バリュー
      waitForValue 	入力フィールドのelementLocator 	値
      (例)
      waitForValue 	finishIndication 	isfinished
    * store
      変数に値を格納します。値は、変数への代入またはjavascript の評価する内容によって組み立てられます。詳しくは後述の「パラメータの組み立てと変数」を参照してください。
      (書式)
      コマンド 	ターゲット 	バリュー
      store 	格納する値 	変数名
      (例)
      store 	Mr John Smith 	fullname
      store 	${title} ${firstname} ${surname} 	fullname
      store 	javascript{Math.round(Math.PI * 100) / 100} 	PI
    * storeValue
      変数に入力フィールドのvalue を格納します。
      (訳注)以下の例のように、type コマンドのバリューに変数に格納した値を使用することができます。
      (書式)
      コマンド 	ターゲット 	バリュー
      storeValue 	入力フィールドのelementLocator 	変数名
      (例)
      storeValue 	userName 	userID
      type 	userName 	${userID}
    * storeText
      要素のテキスト文字列を変数に格納します。
      (書式)
      コマンド 	ターゲット 	バリュー
      storeText 	elementLocator 	変数名
      (例)
      storeText 	currentDate 	expectedStartDate
      verifyValue 	startDate 	${expectedStartDate}
    * TODO	storeAttribute
      要素の属性値を変数に格納します。
      (書式)
      コマンド 	ターゲット 	バリュー
      storeAttribute 	elementLocator@属性名 	なし
      (例)
      storeAttribute 	input1@class 	classOfInput1
      verifyAttribute 	input2@class 	${classOfInput1}
    * TODO	chooseCancelOnNextConfirmation
      javascript が起動する次の確認ダイアログにおいてCancel ボタンをクリックするようSelenium に指示します。
      デフォルトの動作では、確認(confirm)関数は正常終了し、手動でOK ボタンをクリックしたのと同じ結果になります。このコマンドを実行した後では、次の確認時にユーザがCancel ボタンをクリックするかのように振る舞います。
      (書式)
      コマンド 	ターゲット 	バリュー
      chooseCancelOnNextConfirmation 	なし 	なし
      (例)
      chooseCancelOnNextConfirmation
    * TODO	answerOnNextPrompt
      次のプロンプトに対するレスポンスとして指定した文字列を返却するようSelenium に指示します。
      (書式)
      コマンド 	ターゲット 	バリュー
      answerOnNextPrompt 	返却する文字列 	なし
      (例)
      answerOnNextPrompt 	Kangaroo
	 */

	////////////////////////////////////////////////////////////////////////////
	// TODO コマンド　Check編
	/*
コマンド　Check編
Check コマンドはアプリケーションの状態を検証するために用いられます。これらはHTMLのform フィールドの値や、表示されているテキストや、現在のページのURL などをチェックするために使用することができます。
Selenium の全てのCheck コマンドは、"assert"と"verify"の２つのモードがあります。この２つは、"assert"が検証失敗時にテストを中止するのに対して、"verify"は検証失敗時もテストを続行するということ以外は同様に動作します。これによって、１つの"assert"でアプリケーションが正しいページにあることを確認した上で後続の"verify"コマンドでform フィールドのvalue やラベルなどの確認をまとめて実施することができます。
    * assertLocation
      (書式)
      コマンド 	ターゲット 	バリュー
      assertLocation 	相対パス 	なし
      (例)
      verifyLocation 	/mypage
      assertLocation 	/mypage
    * assertTitle
      現在のページのタイトルを検証します。
      (書式)
      コマンド 	ターゲット 	バリュー
      assertTitle 	タイトル文字列pattern 	なし
      (例)
      verifyTitle 	My Page
      assertTitle 	My Page
    * assertValue
      入力フィールドの値(もしくは、value パラメータに関するその他なんでも)を検証します。
      チェックボックス及びラジオボタン要素については、チェックが入っているかどうかによってvalue は"on"か"off"になります。
      (書式)
      コマンド 	ターゲット 	バリュー
      assertValue 	入力フィールドのelementLocator 	値pattern
      (例)
      verifyValue 	nameField 	John Smith
      assertValue 	document.forms[2].nameField 	John Smith
    * assertSelected
      ドロップダウンにおいて選択されたoption がoption 識別子を満たすか検証します。
      (書式)
      コマンド 	ターゲット 	バリュー
      assertSelected 	select 要素のelementLocator 	option 識別子
      (例)
      verifySelected 	dropdown2 	John Smith
      verifySelected 	dropdown2 	value=js*123
      assertSelected 	document.forms[2].dropDown 	label=J* Smith
      assertSelected 	document.forms[2].dropDown 	index=0
    * assertSelectOptions
      ドロップダウンにおける全てのoption のLabel をカンマ区切りのリストとして検証します。カンマは"\,"としてエスケープします。
      (書式)
      コマンド 	ターゲット 	バリュー
      assertSelectOptions 	select 要素のelementLocator 	option のLabelのリスト
      (例)
      verifySelectOptions 	dropdown2 	John Smith,Dave Bird
      assertSelectOptions 	document.forms[2].dropDown 	Smith\, J,Bird\, D
    * assertText
      要素のテキスト文字列を検証します。これはテキストを含む全ての要素に対して動作します。このコマンドは、描画されたテキストであれば要素の textContent(Mozilla のようなブラウザ)でもinnerText(IE のようなブラウザ)でも扱うことができます。
      (書式)
      コマンド 	ターゲット 	バリュー
      assertText 	elementLocator 	文字列pattern
      (例)
      verifyText 	statusMessage 	Successful
      assertText 	//div[@id='foo']//h1 	Successful
    * TODO	assertAttribute
      要素の属性値を検証します。
      (書式)
      コマンド 	ターゲット 	バリュー
      assertAttribute 	elementLocator@要素名 	値pattern
      (例)
      verifyAttribute 	txt1@class 	bigAndBold
      assertAttribute 	document.images[0]@alt 	alt-text
      verifyAttribute 	//img[@id='foo']/@alt 	alt-text
    * TODO	assertTextPresent
      指定したテキスト文字列がユーザに見せる描画されたページにあるか検証します。
      (書式)
      コマンド 	ターゲット 	バリュー
      assertTextPresent 	検証する文字列(表示される文字列) 	なし
      (例)
      verifyTextPresent 	You are now logged in.
      assertTextPresent 	You are now logged in.
    * TODO	assertTextNotPresent
      指定したテキスト文字列が描画されたページのどこにもないことを検証します。
      (書式)
      コマンド 	ターゲット 	バリュー
      assertTextNotPresent 	検証する文字列(表示されない文字列) 	なし
    * TODO	assertElementPresent
      指定した要素がページのどこかにあることを検証します。
      (書式)
      コマンド 	ターゲット 	バリュー
      assertElementPresent 	elementLocator(表示される要素) 	なし
      (例)
      verifyElementPresent 	submitButton
      assertElementPresent 	//img[@alt='foo']
    * TODO	assertElementNotPresent
      指定した要素がページにないことを検証します。
      (書式)
      コマンド 	ターゲット 	バリュー
      assertElementNotPresent 	elementLocator(表示されない要素) 	なし
      (例)
      verifyElementNotPresent 	cancelButton
      assertElementNotPresent 	cancelButton
    * TODO	assertTable
      table 要素の指定したセルのテキストを検証します。
      セルを指定する書式は"table 名.行.カラム"で、行とカラムは0 から数えます。
      (書式)
      コマンド 	ターゲット 	バリュー
      assertTable 	検証対象のテーブル.行.カラム 	検証する文字列
      (例)
      verifyTable 	myTable.1.6 	Submitted
      assertTable 	results.0.2 	13
    * TODO	assertVisible
      指定した要素がページに存在し、且つ目に見えることを検証します。
      ある要素はCSS の設定で該当要素そのものや原型となる要素に対して"visibility"プロパティを"hidden"にしたり"display"プロパティを"none"にすることで見えないように描画され得るのです。
      (書式)
      コマンド 	ターゲット 	バリュー
      assertVisible 	elementLocator 	なし
      (例)
      verifyVisible 	postcode
      assertVisible 	postcode
    * TODO	assertNotVisible
      指定した要素が目に見えるものではないことを検証します。ページに存在しない要素は目に見えないものとみなされます。
      (書式)
      コマンド 	ターゲット 	バリュー
      assertNotVisible 	elementLocator 	なし
      (例)
      verifyNotVisible 	postcode
      assertNotVisible 	postcode
    * TODO	assertEditable
      指定した要素が編集可能かどうか、即ちそれが入力の要素でかつ使用不能になっていないかを検証します。
      (書式)
      コマンド 	ターゲット 	バリュー
      assertEditable 	入力フィールドのelementLocator 	なし
      (例)
      verifyEditable 	shape
      assertEditable 	colour
    * TODO	assertNotEditable
      指定した要素が編集不可であるかどうか、即ちそれが入力の要素でないか、又は使用不能になっているかを検証します。
      (書式)
      コマンド 	ターゲット 	バリュー
      assertNotEditable 	入力フィールドのelementLocator 	なし
    * TODO	assertAlert
      指定したメッセージを持ったjavascript のアラートが発生したか検証します。アラートは発生した順番に検証されなければなりません。
      アラートの検証は、手動でOK ボタンをクリックしたのと同じ効果があります。アラートが発生したけれども検証失敗した場合、Selenium の次の動作は失敗してしまうでしょう。
      注)Selenium の元では、javascript のアラートは目に見えるアラートダイアログとしてポップアップしません。
      注)Selenium は、ページのjavascript のonload()イベントハンドラによって発生するアラートはサポートしていません。この場合には、目に見えるダイアログが発生され、あなたが手動で OK ボタンをクリックするまでSelenium は停止してしまうでしょう。
      (書式)
      コマンド 	ターゲット 	バリュー
      assertAlert 	メッセージpattern 	なし
      (例)
      verifyAlert 	Invalid Phone Number
      assertAlert 	Invalid Phone Number
    * TODO	assertConfirmation
      指定したメッセージを持ったjavascript の確認ダイアログが発生したか検証します。アラートと同様に、確認ダイアログは発生した順番に検証されなければなりません。
      デフォルトの動作では、確認(confirm)関数は正常終了し、手動でOK ボタンをクリックしたのと同じ結果になります。この動作は chooseCancelOnNextConfirmation コマンド(上述)を先行して実行することで変更できます。確認ダイアログが発生したけれども検証失敗した場合、Selenium の次の動作は失敗してしまうでしょう。
      注)Selenium の元では、javascript の確認ダイアログは目に見えるアラートダイアログとしてポップアップしません。
      注)Selenium は、ページのjavascript のonload()イベントハンドラによって発生する確認ダイアログはサポートしていません。この場合には、目に見えるダイアログが発生され、あなたが手動でOK ボタンをクリックするまでSelenium は停止してしまうでしょう。
      (書式)
      コマンド 	ターゲット 	バリュー
      assertConfirmation 	メッセージpattern 	なし
      (例)
      assertConfirmation 	Remove this user?
      verifyConfirmation 	Are you sure?
    * TODO	assertPrompt
      指定したメッセージを持つjavascript のプロンプトダイアログが発生したか検証します。アラートと同様に、プロンプトは発生した順番通りに検証されなければなりません。
      プロンプトダイアログに対して首尾よく扱うためには answerOnNextPrompt コマンド(上述)を先行して実行しておく必要があります。プロンプトが発生したけれども検証失敗した場合、Selenium の次の動作は失敗するでしょう。
      (書式)
      コマンド 	ターゲット 	バリュー
      assertPrompt 	メッセージpattern 	なし
      (例)
      answerOnNextPrompt 	Joe
      click 	id=delegate
      verifyPrompt 	Delegate to who?
	 */

}
