Seleniumideを使用してアクションを複製しようとしています。アクションは、新しいウィンドウを開くリンクをクリックすることです。 Selenium ideを他のウィンドウではなく新しいウィンドウにフォーカスさせるにはどうすればよいですか?それは私のために働いていません。
ウィンドウの選択
このためには、_selectWindow | windowName
_コマンドを使用する必要があります。
他のウィンドウからメインウィンドウに戻るには、_selectWindow | null
_を実行します。
_Arguments: * windowID - the JavaScript window ID of the window to select Selects a popup window using a window locator; once a popup window
_が選択されている場合、すべてのコマンドはそのウィンドウに移動します。メインウィンドウを再度選択するには、ターゲットとしてnullを使用します。
_Window locators provide different ways of specifying the window object:
_タイトル別、内部JavaScriptの「名前」別、またはJavaScript変数別。
_* title=My Special Window: Finds the window using the text that
_タイトルバーにが表示されます。注意してください; 2つのウィンドウで同じタイトルを共有できます。その場合、このロケーターは1つだけを選択します。 * name = myWindow:内部JavaScriptの「name」プロパティを使用してウィンドウを検索します。これは、JavaScriptメソッドwindow.open(url、windowName、windowFeatures、replaceFlag)(Seleniumがインターセプトする)に渡される2番目のパラメーター「windowName」です。 * var = variableName:一部のポップアップウィンドウには名前がありません(匿名)が、現在のアプリケーションウィンドウのJavaScript変数名に関連付けられています。 "window.foo = window.open(url);"。そのような場合は、「var = foo」を使用してウィンドウを開くことができます。
_If no window locator prefix is provided, we'll try to guess what you
_このような意味:
_1.) if windowID is null, (or the string "null") then it is assumed the
_ユーザーは、ブラウザによってインスタンス化された元のウィンドウを参照しています)。
_2.) if the value of the "windowID" parameter is a JavaScript variable
_現在のアプリケーションウィンドウでnameを指定すると、この変数にはJavaScript window.open()メソッドの呼び出しからの戻り値が含まれていると見なされます。
_3.) Otherwise, Selenium looks in a hash it maintains that maps string
_ウィンドウの「名前」への名前。
_4.) If that fails, we'll try looping over all of the known windows
_適切な「タイトル」を見つけようとします。 「タイトル」は必ずしも一意ではないため、予期しない動作が発生する可能性があります。
_If you're having trouble figuring out the name of a window that you want
_操作するには、window.openを介して作成された(したがってSeleniumによってインターセプトされた)ウィンドウの名前を識別するSeleniumログメッセージを確認します。ウィンドウを開くと、ウィンドウごとに次のようなメッセージが表示されます。
_debug: window.open call intercepted; window ID (which you can
_selectWindow()での使用は「myNewWindow」です
_In some cases, Selenium will be unable to intercept a call to
_window.open(たとえば、「onLoad」イベント中またはイベントの前に呼び出しが発生した場合)。 (これはバグSEL-339です。)このような場合、Selenium openWindowコマンドを使用し、次のように空の(空白の)URLを使用して、Seleniumに開いているウィンドウの名前を認識させることができます:openWindow( ""、 "myFunnyWindow") 。
selectWindow(windowID)
selectPopup
ポップアップの場合は、_selectPopUp | windowId
_を実行してから、メインウィンドウに戻るには_selectWindow | null
_を実行します。
selectPopUp(windowID)
引数:
ポップアップウィンドウを選択するプロセスを簡素化します(また、selectWindow()がすでに提供している機能を超える機能は提供しません)。
Selenium Web Driver2を使用してこれを試してください。
driver.switch_to.window(driver.window_handles.last);
‘storeAttribute’コマンドを使用して、ランダムウィンドウID(Selenium IDEによって生成された)を保存できます。 IDを変数に格納するだけで、「selectWindow」コマンドを使用してウィンドウを選択できます。
これを使用してみてください:
<tr>
<td>storeAttribute</td>
<td>link=Help Center@target</td>
<td>window_ID</td>
</tr>
<tr>
<td>selectWindow</td>
<td>${window_ID}</td>
<td></td>
</tr>
これを考慮してください:target="_blank"
属性を削除したいですか?私にとってこれは解決策でした:
getEval
this.page().findElement('link=Facebook').removeAttribute('target');
同じウィンドウ内にとどまると、Selenium IDEにはいくつかの利点があり、ターゲットブランクがサポートされていないことがわかります。