"SeleniumのWebDriverで、新しく別Windowを開いて処理を実行 → 元々開いていたWindowに切り替える・・・というようなことをしたいのですが、Javaのコードでどう書けばいいのでしょうか?
"
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
"Window切り替えはWebDriverのswitchTo()メソッドを使えばできますよ。
(コード例)
//元のWindowHandleを取得しておく
String wid = driver.getWindowHandle();
//別Window切り替え
driver.switchTo().window("ここに新しいWindow名");
//----別Window側で何かの処理
//元のWindowへ切り替え
driver.switchTo().window(wid);
※ちなみに、以下のコードで開いている全てのWindowを取得することもできます。
//開いている全てのWindowをコレクション形式で取得
java.util.Set<string> widSet = driver.getWindowHandles(); "
投稿2014/07/19 02:30
総合スコア156
0
java ではありませんが、 ruby での例があります。
webdriver を使って amazon.co.jp での購入履歴情報を取得する
その中の一部を抜粋します。
lang
1 def open_new_window(wd, url) 2 a = wd.execute_script("var d=document,a=d.createElement('a');a.target='_blank';a.href=arguments[0];a.innerHTML='.';d.body.appendChild(a);return a", url) 3 a.click 4 wd.switch_to.window(wd.window_handles.last) 5 6 wd.find_element(:link_text, '利用規約') 7 yield 8 wd.close 9 wd.switch_to.window(wd.window_handles.last) 10 end
ここでは、
- 指定された URL を別タブで開き、
- なんらかの処理をして、
- そのタブを閉じ、
- もとの タブに制御をもどす
ということをしています。
switch_to.window(), window_handle は java にも同等のものがあるはずです。
(というか、ruby API は java API へのラップなので)
投稿2014/08/26 22:49
総合スコア22324
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2014/08/29 00:39