LoginSignup
6
8

More than 5 years have passed since last update.

Selenium IDE で使ったことがないコマンドを洗い出してみる

Last updated at Posted at 2015-05-12

SeleniumIDEを使い始めてそろそろ8年目。といっても使うコマンドは大体同じものだったり。また、IDEそのものが枯れた技術になっていると思われています。
が、何気にバージョンアップはまだ行われており(そのほとんどがVerUP対応だとしても)ふと、マニュアルを見ると あれ?こんなコマンドあったっけ?ってなことに。

と、言うことで使ったことがないコマンドをピックアップして機械翻訳してみた。

原紙
https://github.com/SeleniumHQ/selenium/blob/76358a4ddc82200bab6302950406eb0470cc1298/ide/main/src/content/selenium-core/reference.html

addLocationStrategy(strategyName、functionDefinition)

ページの要素を検索するセレンのための新しい関数を定義します。あなたは戦略 "foo"を定義して、誰かがクリック( "fooは=何とか")を実行した場合、我々はあなたの関数が返す要素にあなたの文字列 "何とか"を渡し、あなたの関数を実行し、クリックします、またはあなたの関数がnullを返す場合、 "要素が見つかりません」というエラーをスローします。私たちはあなたの関数に3つの引数渡します:
ロケータ:ユーザーが渡された文字列
inWindow:現在選択されているウィンドウ
inDocument:現在選択されている文書
要素が見つからない場合、関数はnullを返す必要があります。

引数:

  • strategyName - 定義するための戦略の名前。これは、スペースや句読点のみ文字[a-zA-Z]のを使用する必要があります。
  • functionDefinition - JavaScriptで関数の本体を定義する文字列。例:inDocument.getElementById(ロケータ)を返します。

addScript(scriptContent、scriptTagId)

Seleniumのドキュメント内の新しいスクリプトタグにスクリプトの内容をロードします。これは、AUTの文書ではなく、Seleniumのドキュメントにスクリプトタグを追加することRUNSCRIPTにRUNSCRIPTコマンドとは異なります。スクリプトの内容の次のエンティティは、それが表す文字に置き換えられている:削除対応するコマンドはremoveScript <>&です。
引数:

  • scriptContent - 追加するスクリプトのJavascriptの内容
  • scriptTagId - (オプション)新しいスクリプトタグのID。指定され、このIDを持つ要素が既に存在する場合、この操作は失敗します。

addSelection(ロケータ、optionLocator)

オプションのロケータを使用して複数選択の要素で選択したオプションのセットに選択を追加します。オプションロケータの詳細については#doSelect @see
引数:

  • ロケータ- 要素ロケータ複数選択ボックスを識別する
  • optionLocator - オプションロケータ(デフォルトではラベル)

allowNativeXpath(許可)

(任意のネイティブバージョンが利用可能な場合)セレンはXPathのネイティブブラウザ内の実装を使用するかどうかを指定します。あなたはこの機能を「false」に合格した場合、我々は常に私たちの純粋なJavaScriptのXPathのライブラリを使用します。純粋なJSのXPathのライブラリを使用すると、異なるブラウザベンダー間のXPath要素ロケータの一貫性を改善するが、純粋なJSのバージョンは、ネイティブ実装よりはるかに遅いことができます。
引数:

  • 許可 - ブール値、真の意味は、我々は、ネイティブのXPathを使用することを好むだろう。falseの場合は、我々は唯一のJS XPathを使用します

answerOnNextPrompt(anser)

セレンは、JavaScriptのプロンプト、[window.prompt()]に応答して、指定された回答文字列を返すように指示します。
引数:

  • anser - 答えはプロンプトポップアップに応じて与えること

assignId(ロケータ、識別子)

一時的にあなたが遅い/複雑なXPathではなく、IDを使用して見つけることができるよう、指定された要素に "id"属性を設定します。ページがリロードされると、このIDは表示されなくなります。
引数:

  • ロケータ- 要素ロケータの要素を指します
  • 識別子 - 指定された要素のIDとして使用される文字列

chooseCancelOnNextConfirmation()

ユーザーが手動でOKをクリックしたかのようにデフォルトでは、セレンのオーバーライドされたwindow.confirm()関数は、trueを返します。ユーザーがクリックしたかのように、このコマンドを実行した後、確認する次の()の呼び出しはキャンセル、falseを返します。あなたが明示的にそれぞれの確認のために、このコマンドを呼び出すまで、セレンは、自動的に/しない限り(OK)trueを返す、将来の確認のためのデフォルトの動作を使用して再開します。

あなたが対応するgetConfirmationでそれを消費する必要があり、確認がアップするたびに、またはそれ以外の場合は次のセレン操作は失敗します - 注意してください。

chooseOkOnNextConfirmation()

chooseCancelOnNextConfirmationの呼び出しの効果を取り消します。あなたが前に次の確認にあなたの心を変更する必要があるいくつかの理由でない限り、このコマンドを使用する必要はありませんので、ユーザーが手動で、[OK]をクリックしたかのようにセレンのオーバーライドされたwindow.confirm()関数は、通常自動的に、trueを返すことに注意してください。あなたが明示的に各確認のためchooseCancelOnNextConfirmationを呼び出すまで/しない限り、任意の確認後、セレンは自動的にtrue(OK)を返す、将来の確認のためのデフォルトの動作を使用して再開します。

あなたが対応するgetConfirmationでそれを消費する必要があり、確認がアップするたびに、またはそれ以外の場合は次のセレン操作は失敗します - 注意してください。

contextMenu(ロケータ)

指定された要素(ユーザー「右クリック」要素の場合に発生する可能性があります)のコンテキストメニューを開いてシミュレートします。
引数:

  • ロケータ - 要素ロケータ

deselectPopUp()

メインウィンドウを選択します。 selectWindow()に値(WINDOWID)を指定しないのと機能的に同等 。

fireEvent(ロケータ、イベント名)

明示的に「上の対応をトリガするために、イベントをシミュレートするイベントハンドラ」。
引数:

  • ロケータ- 要素ロケータ
  • イベント名 - イベント名、例えば「フォーカス」や「ぼかし」

ignoreAttributesWithoutValue(ignore )

セレンは、すなわち、値を持たない空の文字列、非ネイティブのXPath評価エンジンを使用しているのxpath属性を無視するかどうかを指定します。あなたは、IEのパフォーマンス上の理由のためにこれをやってみたいと思います。しかし、これは、例えば、その値が空の文字列ではなく、属性を探しXPathを特定のXPathを中断する可能性があります。希望は、このようなXPathのは比較的まれであるということですが、ユーザーはそれらを使用するオプションを持っている必要があります。ajaxsltエンジン(すなわちない「JavaScriptの-XPathを」)を使用した場合のみ、この影響を与えるXPath評価することに注意してください。
引数:

  • ignore - ブール値、真の意味は、我々がXPathの「正しさ」を犠牲にして、値のない属性を無視します。falseの場合は、我々は正確性の速度を犠牲にします。

openWindow(URL、WINDOWID)

ポップアップウィンドウを開きます(そのIDでウィンドウがまだ開いていない場合)。ウィンドウを開いた後、あなたはselectWindowコマンドを使用して、それを選択する必要があります。
このコマンドは、バグSEL-339のために有用な回避策であることができます。いくつかのケースでは、セレンは、(コールは、たとえば、中または「オンロード」イベントの前に発生した場合)のwindow.openの呼び出しをインターセプトすることができません。openWindow( ""、 "myFunnyWindow」):これらのケースでは、このような空(ブランク)のURLを、使用して、セレンopenWindowコマンドを使用して、開いているウィンドウの名前を気づいてセレンを強制することができます。

引数:

  • URL - 開くためのURL、空白にすることができます
  • WINDOWID - ウィンドウのJavaScriptのウィンドウIDを選択します

selectFrame(ロケータ)

現在のウィンドウ内のフレームを選択します。(ネストされたフレームを選択するには、このコマンドを複数回呼び出すことができます。)親フレームを選択するには、ロケータとして "=相対親」を使用します。トップフレームを選択するには、「相対=トップ "を使用します。あなたはまた、0から始まるインデックス番号でフレームを選択することができます。「インデックス= 2」の「インデックス= 0」、または第3のフレームと最初のフレームを選択します。
また、このように、あなたが直接するフレームを識別するためのDOM表現を使用することがあります。DOM =フレーム["メイン"]フレーム["サブ"]

引数:

  • ロケータ- 要素ロケータフレームまたはインラインフレームを識別する

selectPopUp(WINDOWID)

ポップアップウィンドウを選択するプロセスを簡素化(とものを超えた機能を提供していませんselectWindow()既に提供)。
場合WINDOWIDが指定した、または「ヌル」として指定されていないか、最初の非トップ·ウィンドウが選択されています。トップウィンドウはによって選択される一つであるselectWindow()設けず WINDOWIDを。複数のポップアップウィンドウが場にある場合、これは使用すべきではありません。
そうしないと、ウィンドウが考慮検索されます WINDOWIDをするために指定されるように、窓の1)「名前」:ために、以下のようにwindow.openの() ; 2)ウィンドウへの参照であるjavascriptの変数。3)ウィンドウのタイトル。これは、によって行わ同じ順序の検索です selectWindow。
引数:

  • WINDOWID - ポップアップウィンドウの識別子、異なる意味の数を取ることができます

selectWindow(WINDOWID)

ウィンドウのロケータを使用してポップアップウィンドウを選択します。ポップアップウィンドウが選択されると、すべてのコマンドは、そのウィンドウに移動します。再びメインウィンドウを選択するには、ターゲットとしてnullを使用します。
ウィンドウロケータはウィンドウオブジェクトを指定するさまざまな方法を提供します。タイトルで、内部のJavaScriptの「名前」によって、またはJavaScriptの変数で。

タイトル = 私の特別なウィンドウ:タイトルバーに表示されるテキストを使用してウィンドウを検索します。注意してください; 2つのウィンドウが同じタイトルを共有することができます。その場合は、このロケータは1つだけ選択されます。
名前 = mywindowの:その内部のJavaScriptの「名前」プロパティを使用してウィンドウを検索します。これは、JavaScriptのメソッドのwindow.openに渡された二番目のパラメータ「windowName」(URL、windowName、windowFeatures、replaceFlag)(セレンインターセプト)です。
VAR = variableNameに: "window.foo =のwindow.open(URL);"いくつかのポップアップウィンドウが(匿名)無名のですが、現在のアプリケーションウィンドウ内のJavaScript変数名、例えばに関連付けられています。これらのケースでは、「VAR = foo "を使用してウィンドウを開くことができます。
窓なしロケータプレフィックスが提供されない場合、我々はあなたがこのように何を意味するかを推測しようとするでしょう:

1.)WINDOWIDはそれは、ユーザーがブラウザによってインスタンス元のウィンドウ)を参照していると仮定される(または文字列 "NULL")、nullの場合。

2.)「WINDOWID」パラメータの値は、現在のアプリケーションのウィンドウで、それは、この変数には、JavaScriptのwindow.open()メソッドの呼び出しからの戻り値が含まれていることを想定しているJavaScriptの変数名である場合。

3.)それ以外の場合、セレンは、「名前」ウィンドウにそのマップの文字列名を保持し、ハッシュになります。

場合4)それが失敗した場合、我々は適切な"タイトル"を見つけることを試みることが知られているすべてのウィンドウの上にループしてみます。「タイトル」は必ずしも一意ではないので、これは予期しない動作をする場合があります。

あなたが操作したいウィンドウの名前を考え出す問題が発生した場合は、経由して作成されたウィンドウの名前を特定セレンログメッセージを見てのwindow.open(したがって、セレンによって傍受)。あなたはそれが開かれるように、各ウィンドウには、次のようなメッセージが表示されます。

デバッグ:window.openの呼び出しがインターセプト。(あなたがselectWindow()で使用できる)ウィンドウIDは「myNewWindow」であります

いくつかのケースでは、セレンは、(コールは、たとえば、中または「オンロード」イベントの前に発生した場合)のwindow.openの呼び出しをインターセプトすることができません。(これはバグSEL-339である。)これらのケースでは、このように、空(ブランク)のURLを使用して、セレンopenWindowコマンドを使用して、開いているウィンドウの名前を気づいてセレンを強制することができます:openWindowを( ""、 "myFunnyWindow」) 。

引数:

  • WINDOWID - ウィンドウのJavaScriptのウィンドウIDを選択します

Seleniumのアクセサ

assertErrorOnNext(メッセージ)

次のコマンド実行時にエラーを期待するセレンを教えてください。
引数:

  • メッセージ - 私たちは期待すべきエラーメッセージ。誤ったエラーメッセージが表示された場合、このコマンドは失敗します。

storeAlert(variableName)

前の操作の際に生成されるJavaScriptの警告のメッセージを取得し、または全く警告がなかった場合は失敗します。
アラートを取得するなど、手動で[OK]をクリックするのと同じ効果があります。アラートが生成されますが、getAlertとそれを消費しない場合は、次のSeleniumのアクションは失敗します。

セレンの下では、JavaScriptのアラートは目に見えるアラートダイアログとしてポップアップしません。

セレンは、ページのonload()イベントハンドラ内で生成されたJavaScriptアラートをサポートしていません。この場合、目に見えるダイアログが生成され、誰かが手動で[OK]をクリックするまで、セレンがハングします。

戻り値:

  • 最新のJavaScriptの警告のメッセージ

storeConfirmation(variableName)

前の操作中に生成されたJavaScriptの確認ダイアログのメッセージを取得します。
デフォルトでは、confirm関数は、[OK]をクリックするのと、手動で同じ効果を持つ、trueを返します。これはchooseCancelOnNextConfirmationコマンドの前に実行することによって変更することができます。

確認が生成されますがgetConfirmationとそれを消費しない場合は、次のSeleniumのアクションは失敗します。

注:セレンの下には、JavaScriptの確認が見えるダイアログとしてポップアップしません。

注:セレンは、ページのonload()イベントハンドラ内で生成されたJavaScriptの確認をサポートしていません。この場合、目に見えるダイアログが生成され、手動で[OK]をクリックするまでセレンがハングします。

戻り値:

  • 最新のJavaScriptの確認ダイアログのメッセージ

storeExpression(式、variableName)

指定された式を返します。
これは、JavaScriptの前処理のに便利です。これはassertExpressionとwaitForExpressionようなコマンドを生成するために使用されます。

引数:

  • 式 - 返される値 variableNameに-の名前変数結果が格納されます。

戻り値:

  • 渡された値

storePrompt(variableName)

前の操作の際に生成されるJavaScriptの質問プロンプトダイアログのメッセージを取得します。
プロンプトの成功取り扱いはanswerOnNextPromptコマンドの前に実行を必要とします。プロンプトが生成されますが、あなたがそれを確認/取得しない場合は、次のSeleniumのアクションは失敗します。

注:セレンの下には、JavaScriptのプロンプトが表示ダイアログとしてポップアップしません。

注:セレンは、ページのonload()イベントハンドラ内で生成されたJavaScriptのプロンプトをサポートしていません。この場合、目に見えるダイアログが生成され、誰かが手動で[OK]をクリックするまで、セレンがハングします。

戻り値:

  • 最新のJavaScriptの質問プロンプトのメッセージ

storeWhetherThisFrameMatchFrameExpression(currentFrameString、ターゲット、variableName)

現在/ロケータは、この実行中のコードを含むフレームを識別するかどうかを確認します。
これは、このコードは、すべてのブラウザのフレームやウィンドウで実行され、場合によってはセレンサーバーが「現在」のフレームを識別するために必要なプロキシ噴射モードにおいて有用です。テストはselectFrameを呼び出したときに、この場合には、このルーチンは、1つが選択されている把握するフレームごとに呼び出されます。他のすべてがfalseを返しますしながら、選択されたフレームは、trueを返します。

引数:

  • currentFrameString - フレームの開始
  • 目標 - (現在の1に相対的であるかもしれない)新しいフレーム
  • variableNameに-の名前変数結果が格納されます。

戻り値:

  • 新しいフレームは、このコードのウィンドウである場合はtrue

storeWhetherThisWindowMatchWindowExpression(currentWindowString、ターゲット、variableName)

currentWindowStringプラスターゲットは、この実行中のコードを含むウィンドウを識別するかどうかを確認します。
これは、このコードは、すべてのブラウザのフレームやウィンドウで実行され、場合によってはセレンサーバーが「現在」のウィンドウを識別するために必要なプロキシ噴射モードにおいて有用です。テストはselectWindowを呼び出したときに、この場合には、このルーチンは、1つが選択されている把握する各ウィンドウに呼び出されます。他のすべてがfalseを返しますしながら、選択されたウィンドウは、trueを返します。

引数:

  • currentWindowString - ウィンドウを起動します
  • 目標 - (現在の1からの相対かもしれないが、例えば、「_parent」)新しいウィンドウ
  • variableNameに-の名前変数結果が格納されます。

戻り値:

  • 新しいウィンドウがこのコードのウィンドウである場合はtrue

storeAlertPresent(variableName)

アラートが発生したか?
この関数は例外をスローすることはありません

戻り値:

  • 警告がある場合はtrue

storeConfirmationPresent(variableName)

(確認)​​と呼ばれていますか?
この関数は例外をスローすることはありません

戻り値:

  • 保留中の確認が存在する場合はtrue

storeElementPresent(ロケータ、variableName)

指定された要素は、ページ上のどこかにあることを検証します。
引数:

  • ロケータ- 要素ロケータ
  • variableNameに-の名前変数結果が格納されます。

戻り値:

  • そうでなければ、真の要素が存在する場合には、偽

storePromptPresent(variableName)

プロンプトが発生したか?
この関数は例外をスローすることはありません

戻り値:

  • 保留中のプロンプトがある場合はtrue

storeOrdered(ロケータ1、ロケータ2、variableName)

この2つの要素が同じ親を持つとDOMで兄弟を注文しているかどうかを確認します。二つの同一の要素には注文したとは見なされません。
引数:

  • ロケータ1 - 要素ロケータ最初の要素を指しています
  • ロケータ2 - 要素ロケータ二番目の要素を指しています
  • variableName - 名前変数結果が格納されます。

戻り値:

  • 真の要素1が要素2の前の兄弟であれば、そうでない場合はfalse

 できれば

こんなコマンドが!というものから機械翻訳しても使い方が分からないものもありますね。

これらをテストできるサンプルページがあるといいのに。。。

6
8
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8