1

私はrspecとwatirを使用してtddを実行することを試みていますが、乗り越えられないような問題に遭遇しました。watirにリンク(target = "_ blank")をクリックしてもらい、新しくロードされたページのURLを取得したいと思います。Watirはリンクをクリックしますが、URLを取得しようとすると、現在のURLではなく古いURLを受け取ります。Watirのドキュメントは、ブラウザのurlメソッドが現在のURLを返すことを示しているようです。Watirにjavascriptを実行させて現在のURLを取得することでこの問題を解決しているように見えるブログ投稿を見つけましたが、これはうまくいきません。Watirのリンククリックから現在のURLを取得する方法はありますか?

<!-- the html -->
<a href="http://www.linkedin.com" target="_blank">LinkedIn</a>

#The rspec code
it "should load LinkedIn" do
  browser.link(:href => "http://www.linkedin.com").click
  browser.url.should == "http://www.linkedin.com"
end
4

1 に答える 1

2

ターゲットは新しいブラウザウィンドウにリンクをロードするため、URLをアサートするにはそのウィンドウに切り替える必要があります。

it "should load LinkedIn" do
  browser.link(:href => "http://www.linkedin.com").click
  browser.window(:title => /.*LinkedIn.*/).use do
    browser.url.should == "http://www.linkedin.com"
  end
end

その他の例については、http://watirwebdriver.com/browser-popups/を参照してください。

于 2011-09-18T12:00:13.543 に答える