2016-04-07 15 views
1

同じページの複数のリンクをクリックしてテストしたいが、アクティブなタブを切り替えることができる。しかし、target = _blankのリンクをクリックするか、目的の新しいタブを開くと、新しいタブにルーティングされ、古いタブに戻ることはできません。Watir WebDriverブラウザオブジェクトが新しいタブ(FIREFOX)を開いたときに現在のウィンドウを失う

注:私はテストのためにFirefoxを使用しています。 Chromeが正常に動作し、ここで2

の窓の数を提供するように見えるん私は何を意味するか示すために、単純なIRBスニペットです:私は2つのタブが(:command, :shift)オプションがに意図され、開かれた参照

2.2.1 :001 > require 'watir-webdriver' 
=> true 
2.2.1 :002 > b = Watir::Browser.new :firefox, :profile => 'default' 
=> #<Watir::Browser:0x..fa8c7116334ddce82 url="about:blank" title=""> 
2.2.1 :003 > b.goto 'amazon.com' 
=> "http://amazon.com" 
2.2.1 :004 > b.a(:class => 'nav-logo-link').click(:command, :shift) 
=> nil 
2.2.1 :005 > b.windows.count 
=> 1 

しかし、ブラウザのオブジェクトに1つのウィンドウしかない場合は、最初のページに戻るにはどうすればよいですか?

私は同じ問題を抱えている誰かを見つけることができないようですので、おそらくそのファイアフォックスの問題か私の環境でしょうか?

マックOSX、FFバージョン44、Rubyの2.2.1、ワチール-webdriverを上で実行0.9.1

+1

あなたのサイトをテストするためにAmazonによって支払われている場合を除き、サイトの使用条件に違反しているため、サイトをターゲットとしたブラウザ自動化を行うべきではありません。具体的には、「本ライセンスにはAmazonサービスまたはそのコンテンツの派生的使用は含まれません。第三者の利益のためのアカウント情報のダウンロード、コピー、またはその他の使用。またはデータマイニング、ロボット、または同様のデータ収集および抽出ツールの使用。 ' - 任意のブラウザ自動化ツールは、 'ロボットなどの節'に適合します。 –

+0

...私がやっているウェブサイトはまだ生きていないので、私は単純な例としてAmazonを使用しました。私は別のサイトを選んで、将来の参照用に例を挙げてください。 – justaslacker21

+0

ここでは何を求めているのか分かりませんが、ここで扱っているウィンドウについての私の答えをチェックする価値はあります。http://stackoverflow.com /質問/ 16222446 /新しいブラウザのタブへのアクセス方法/ 16223773#16223773 –

答えて

1

チェックこのアウト:

require 'watir-webdriver' 
b = Watir::Browser.new 
b.goto "amazon.com" 
link = b.a(:class => 'nav-logo-link') 
b.execute_script("return arguments[0].target = '_blank'", link) 
link.click 
puts b.windows.count 

主なアイデアは、内のリンクを使用しようとすることではありません2つのウィンドウを取得するが、自然な方法で2つのウィンドウを取得するリンクを変更する特別な方法です。

+0

それは問題の一部を解決するように見えますが、私は回避策が好きです。これがfirefoxドライバの既知のバグかどうかを知ることはまだ興味があります。また、browser.link.open_newwindowのfirefoxの設定は、このドライバでは2にデフォルト設定されているようですが、タブの代わりにtarget = '_ blank'を新しいウィンドウとして扱います。あなたはテストのためにこれを変更する方法を知っていますか?巨大な問題ではありませんが、テストはたくさんのウィンドウの代わりにタブで表示されたときにきれいに見えます。 – justaslacker21

+0

。以前は上記の方法を使用しましたが、今は使用しません。秘密は、私は決してブラウザのウィンドウ\タブを使用しています。たくさんのリンクを開く必要があるときには、hrefを配列に格納してそれを一つずつ開きます。だからもっと明確にする方法はありません。 – Antesser

関連する問題