2011-09-18 107 views
1

我正在尝试使用rspec和watir来做一些tdd并遇到了一个我似乎无法通过的问题。我想要点击一个链接(target =“_ blank”),然后获取新加载页面的URL。 Watir点击链接,但当我尝试获取网址时,我收到的旧网址不是当前网址。 Watir文档似乎表明浏览器url方法将返回当前的url。我发现了一篇博客文章,似乎通过让Watir执行一些JavaScript来获取当前网址来解决这个问题,但这不适用于我。无论如何,从Watir点击链接获取当前网址?浏览器网址不返回新的网址

<!-- 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 

回答

2

目标将加载链接在新的浏览器窗口,因此,你需要切换到该窗口断言网址:

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/更多的例子

+0

谢谢!我没有意识到我需要切换到新窗口。 – binaryFever