我第一次和watir一起玩,用这个网站作为指导。我在一个简单的程序(如下)上遇到一个错误——它在第一个非必需行失败,如图所示。
如果我没有运行下面显示的内容,而是删除了这一行,它会打开一个空的Firefox浏览器,但不遵循任何其他说明。它永远不会完成,当我中止它时,我会得到一个不同的错误。
我非常感谢您对如何进行的建议,并将对更多信息的要求作出回应。我用的是64位Mac电脑。谢谢
简单程序
require 'rubygems'
require 'watir'
Watir::Browser.default = 'firefox'
browser = Watir::Browser.new
browser.goto("http://www.weather.com")
sleep 5
browser.close
尝试运行程序
matt$ ruby watir_weather.rb
/Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/watir-4.0.2/lib/watir/loader.rb:64: stack level too deep (SystemStackError)
IRB中的尝试
matt$ irb
1.9.3-p385 :001 > require 'watir'
=> true
1.9.3-p385 :002 > Watir::Browser.default = 'firefox'
SystemStackError: stack level too deep
from /Users/matt/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/irb/workspace.rb:80
Maybe IRB bug!
1.9.3-p385 :003 > exit
备用程序
require 'rubygems'
require 'watir'
#Watir::Browser.default = 'firefox'
browser = Watir::Browser.new
browser.goto("http://www.weather.com")
sleep 5
browser.close
交替错误
matt$ ruby watir_weather.rb
^C/Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/selenium-webdriver-2.29.0/lib/selenium/webdriver/common/socket_poller.rb:95:in `sleep': Interrupt
from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/selenium-webdriver-2.29.0/lib/selenium/webdriver/common/socket_poller.rb:95:in `wait'
from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/selenium-webdriver-2.29.0/lib/selenium/webdriver/common/socket_poller.rb:88:in `with_timeout'
from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/selenium-webdriver-2.29.0/lib/selenium/webdriver/common/socket_poller.rb:23:in `connected?'
from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/selenium-webdriver-2.29.0/lib/selenium/webdriver/firefox/launcher.rb:77:in `connect_until_stable'
from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/selenium-webdriver-2.29.0/lib/selenium/webdriver/firefox/launcher.rb:37:in `block in launch'
from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/selenium-webdriver-2.29.0/lib/selenium/webdriver/firefox/socket_lock.rb:20:in `locked'
from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/selenium-webdriver-2.29.0/lib/selenium/webdriver/firefox/launcher.rb:32:in `launch'
from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/selenium-webdriver-2.29.0/lib/selenium/webdriver/firefox/bridge.rb:20:in `initialize'
from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/selenium-webdriver-2.29.0/lib/selenium/webdriver/common/driver.rb:31:in `new'
from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/selenium-webdriver-2.29.0/lib/selenium/webdriver/common/driver.rb:31:in `for'
from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/selenium-webdriver-2.29.0/lib/selenium/webdriver.rb:67:in `for'
from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/watir-webdriver-0.6.4/lib/watir-webdriver/browser.rb:46:in `initialize'
from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/watir-4.0.2/lib/watir/loader.rb:16:in `new'
from /Users/matt/.rvm/gems/ruby-1.9.3-p385/gems/watir-4.0.2/lib/watir/loader.rb:16:in `new'
from watir_weather.rb:5:in `<main>'
Gems(似乎其他人有ffi依赖问题)
matt$ gem list
*** LOCAL GEMS ***
actionmailer (3.2.13, 3.2.11)
actionpack (3.2.13, 3.2.11)
activemodel (3.2.13, 3.2.11)
activerecord (3.2.13, 3.2.11)
activeresource (3.2.13, 3.2.11)
activesupport (3.2.13, 3.2.11)
addressable (2.3.2)
annotate (2.5.0)
arel (3.0.2)
bcrypt-ruby (3.0.1)
bigdecimal (1.1.0)
bloggy (0.2.1)
bootstrap-sass (2.1.0.0)
bootstrap-sass-rails (2.2.2.0)
bourne (1.1.2)
builder (3.0.4)
bundler (1.2.3)
capybara (1.1.2)
childprocess (0.3.8, 0.3.7)
classifier (1.3.3)
cocaine (0.4.2)
coderay (1.0.8)
coffee-rails (3.2.2)
coffee-script (2.2.0)
coffee-script-source (1.6.1, 1.4.0)
colorator (0.1)
commander (4.1.3)
commonwatir (4.0.0)
devise (2.2.3)
diff-lcs (1.1.3)
directory_watcher (1.4.1)
domain_name (0.5.11)
erubis (2.7.0)
excon (0.16.10)
execjs (1.4.0)
factory_girl (4.1.0)
factory_girl_rails (4.1.0)
faker (1.0.1)
fast-stemmer (1.0.2)
ffi (1.3.1)
heroku (2.35.0)
heroku-api (0.3.7)
highline (1.6.18)
hike (1.2.1)
i18n (0.6.4, 0.6.1)
io-console (0.3)
jekyll (1.0.0)
journey (1.0.4)
jquery-rails (2.2.1, 2.0.2)
json (1.7.7, 1.7.6, 1.5.4)
jwt (0.1.5)
kramdown (0.14.2)
launchy (2.2.0)
liquid (2.5.0)
magic_encoding (0.0.2)
mail (2.5.3, 2.4.4)
maruku (0.6.1)
mechanize (2.6.0)
metaclass (0.0.1)
method_source (0.8.1)
mime-types (1.21, 1.20.1)
minitest (2.5.1)
mocha (0.10.5)
multi_json (1.6.1, 1.5.0)
net-http-digest_auth (1.3)
net-http-persistent (2.8)
netrc (0.7.7)
newrelic_rpm (3.5.8.72)
nokogiri (1.5.9, 1.5.6)
ntlm-http (0.1.1)
orm_adapter (0.4.0)
paperclip (3.4.0)
pg (0.14.1, 0.12.2)
polyglot (0.3.3)
posix-spawn (0.3.6)
pry (0.9.11.4)
pry-rails (0.2.2)
pygments.rb (0.4.2)
rack (1.4.5)
rack-cache (1.2)
rack-contrib (1.1.0)
rack-ssl (1.3.3)
rack-test (0.6.2)
rails (3.2.11)
railties (3.2.13, 3.2.11)
rake (10.0.3, 0.9.2.2)
rdiscount (2.0.7.2)
rdoc (3.12.2, 3.12.1, 3.9.5)
rest-client (1.6.7)
rspec-core (2.12.2)
rspec-expectations (2.12.1)
rspec-mocks (2.12.2)
rspec-rails (2.12.2)
rubygems-bundler (1.1.0)
rubyzip (0.9.9)
rvm (1.11.3.6)
s3_swf_upload (0.3.2)
safe_yaml (0.7.1)
sass (3.2.7, 3.2.5)
sass-rails (3.2.6)
selenium-webdriver (2.29.0)
shoulda-matchers (1.4.2)
slop (3.4.3)
sprockets (2.2.2)
sqlite3 (1.3.7, 1.3.5)
syntax (1.0.0)
thor (0.17.0)
tilt (1.3.5, 1.3.3)
treetop (1.4.12)
twilio-ruby (3.9.0)
tzinfo (0.3.37, 0.3.35)
uglifier (1.3.0)
unf (0.1.1)
unf_ext (0.0.6)
warden (1.2.1)
watir (4.0.2)
watir-webdriver (0.6.4)
webrick (1.3.1)
webrobots (0.1.1)
websocket (1.0.7)
xpath (0.1.4)
yajl-ruby (1.1.0)
就我从加载程序代码中看到的,没有Watir::Browser。default=
method,所以我猜是什么导致了这个问题。
您应该将其传递给浏览器构造函数,而不是设置默认浏览器。
Watir::Browser.new :firefox
关于您的套接字错误,这是selenium webdriver(在您的案例中支持watir)的一些问题,需要进行更多的调查(可能是另一个问题)。
许多事件会自动触发浏览器执行某些行为。 例如: 点击一个链接 —— 触发导航(navigation)到该 URL。 点击表单的提交按钮 —— 触发提交到服务器的行为。 在文本上按下鼠标按钮并移动 —— 选中文本。 如果我们使用 JavaScript 处理一个事件,那么我们通常不希望发生相应的浏览器行为。而是想要实现其他行为进行替代。 阻止浏览器行为 有两种方式来告诉浏览器我们不希望它执行默认行为:
问题内容: 我在使Chrome与64位Ubuntu 13.10上的RSpec / Capybara配合使用时遇到麻烦。默认情况下,它会启动Firefox- 我们尝试了多种更改方式,包括: http://actsasblog.ca/2011/09/28/how-to-use-chrome-with- capybara/ ‘: undefined local variable or method 我们
Bootstrap支持多种多样的现代浏览器以及设备,还支持一些较早的浏览器。具体支持哪一些,请看下面内容。下面还列出了一些已知的漏洞的详细信息。 支持的浏览器 Bootstrap 支持所有的主流浏览器和平台的最新的、稳定的版本。 在 Windows 中, **我们支持 Internet Explorer 9-11 **。下面提供了更多详细的支持信息。 移动设备 总的来说,Bootstrap支持所有
Burp 需要与您的浏览器一起使用。 Burp 作为 HTTP 代理服务器,所有来自浏览器的 HTTP/HTTPS 流量都通过 Burp。 要使用 Burp 进行任何类型的测试,您需要配置浏览器以使用它。 首先,您需要确认 Burp 的代理侦听器是正常工作的。 转到代理(Proxy)选项卡,然后选项(Options)子选项卡,并查看代理侦听器(Proxy Listeners)部分。 您应该在表中看
每个桌面浏览器都有一套开发工具,开箱即用,您可以将他们添加到您的浏览器的扩展或插件。 以下是两个具有一些实用功能的Chrome扩展程序,可帮助您调试设计。 Emmet Re:View Emmet Re:View是一个工具,它可以让你轻松查看您的网站在每个媒体查询(media queries)中的样子,并同步所有页面的滚动。 你可以在他们的网站上看到它的演示。 Download on the Chr
问题内容: 是否有针对不同浏览器的默认CSS样式表的列表?(表格形式的浏览器样式表) 我想知道所有浏览器中文本区域的默认字体,以供将来参考。 问题答案: 不是表格形式,但是如果您要查找特定的内容,则源CSS可能会有所帮助: Firefox默认HTML样式表 WebKit默认HTML样式表 但是,您只能依靠IE和Opera。