2011-03-26 23 views
2

我需要在我的网站上使用Facebook连接测试登录。当点击使用Facebook按钮连接时,弹出窗口打开。watir browser.attach覆盖以前的浏览器对象

我使用ie = Watir::Browser.attach(:title, 'Login | Facebook')将这个新窗口分配给一个新的对象。但不知何故,之前的浏览器对象也会引用新的对象。

b = Watir::Browser.start("http://www.pstom.com") 
b.link(:text, "Connect with Facebook").click 
irb(main):081:0> puts b.title 
PSToM - Home 
=> nil 
ie = Watir::Browser.attach(:title, 'Login | Facebook') 
puts b.title 
Login | Facebook 
=> nil 
irb(main):085:0> puts ie.title 
Login | Facebook 
=> nil 

到底哪里出问题了(我测试在IRB在Ubuntu)

+0

我想,我的Windows机器上(我的Ubuntu机器有FF 4.0这样的Watir不上它的工作),它表现得如你所料。你有没有测试过外部IRB?此外,有没有没有包含在问题中的任何代码? – juan2raid 2011-03-26 15:49:23

+0

有人有权限的人应该在这个问题上加上firewatir标签。 – 2011-03-28 23:31:15

+0

在使用任何自动化访问他们的网站之前,请确保您获得Facebook的许可。除此之外,您违反了服务条款,并可能突然发现您的帐户已关闭,或者更糟糕,您的ip被禁止或者有问题。 – 2011-03-28 23:33:01

回答

4

我想有一个与firewatir宝石和附加的一个问题。试试watir-webdriver gem(它可以驱动Firefox)。

github上:https://github.com/jarib/watir-webdriver
的RubyGems:https://rubygems.org/gems/watir-webdriver
安装:
https://github.com/zeljkofilipin/watirbook/blob/master/installation-ubuntu.md
https://github.com/zeljkofilipin/watirbook/downloads

+0

是的,这是一个已知的FireWatir错误,但应该在IE中正常工作。 OP能否确认他们正在使用哪一个? – 2011-03-28 19:43:24

+0

他们说他们在Ubuntu上,所以我认为IE会排除IE。 – 2011-03-28 23:06:33

0

我在Windows/IE正确的行为。你有什么版本?我有红宝石1.8.7和1.7.1的Watir

irb(main):001:0> require 'watir' 
=> true 
irb(main):002:0> a = Watir::Browser.attach(:title, 'Google') 
=> #<Watir::IE:0x4ecfde0 url="http://www.google.com/" title="Google"> 
irb(main):003:0> puts a.title 
Google 
=> nil 
irb(main):004:0> b = Watir::Browser.attach(:title, 'Bing') 
=> #<Watir::IE:0x4ea59d8 url="http://www.bing.com/" title="Bing"> 
irb(main):005:0> puts b.title 
Bing 
=> nil 
irb(main):006:0> puts a.title 
Google 
=> nil 
irb(main):007:0>