2016-04-27 16 views
2

私は、ボタンをクリックしたときに新しいブラウザが開かれたときに私が入力したWebアプリケーションを自動化するためにrubyとwatir-webdriverを使用しています。新しいウィンドウが開きます。 Webdriverはそれをウィンドウとして識別できません。Webdriverを使用して新しく開かれたブラウザにフォーカスを設定

このシナリオを処理する方法はありますか?私が知っているように、webdriverが起動していないブラウザインスタンスには接続できません。

私は窓が

@browser.window(:title => /#{title}/i).wait_until_present 

私も開いているすべてのウィンドウを確認するために、コードの下にしようとしたが、新しいブラウザインスタンスがリストに

@browser.windows.each { |w| p w.title} 
+0

あなたはの線に沿って何かをしようとしたことがありますか?これは 'Ruby'の正しい構文ではないかもしれませんが、比較的近いはずです。 – Brian

+0

実際にブラウザウィンドウになっていますか?ポップアップのように見えるだけの要素である可能性はありますか?たとえば、[jQueryUIダイアログ](https://jqueryui.com/dialog/)はウィンドウのように見えますが、元のブラウザウィンドウの要素(新しいウィンドウではありません)にすぎません。 –

+0

@brian - >私はルビーで同様のことをやったことがありますが、私が言ったように、問題は子ウィンドウではなく、新しいブラウザセッションです。 – yudi2312

答えて

0
来ていませんでしたが存在するかどうかを確認するために、次のコードを使用

私はこの正確な使用例のためにWatir::Window#useが開発されたと確信しています。別のウィンドウに切り替わり、アクションを実行し(コードブロックとして渡されます)、元のウィンドウに戻ります。 。 `;` driver.SwitchTo()ウィンドウ(driver.WindowHandles.Last()):たとえば:

@browser.window(title: /#{title}/i).use do 
    # Whatever you need to do on the new window, like: 
    @browser.text_field(id: "some-id").set "Foo" 
    @browser.button(id: "submit").click 
end 
+0

..それは子供のウィンドウではない...それは新しいブラウザセッションです – yudi2312

関連する問題