首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“用于:ole_object:Symbol的未定义方法‘`each’

“用于:ole_object:Symbol的未定义方法‘`each’
EN

Stack Overflow用户
提问于 2011-11-09 18:35:51
回答 2查看 1.2K关注 0票数 1

今天我安装了Ruby 1.9.2p180 (2011-02-18) [i386-mingw32],我遇到了以下问题。和Ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32]合作得很好。我在许多论坛上搜索,仍然找不到一个灵魂。请帮帮我!

使用下面的代码单击按钮时,我将得到错误Undefined method 'each' for :ole_object:Symbol (NoMethodError)

代码语言:javascript
复制
ie.frame(:id,"body").table(:id,"recordListButton_UserList_ctl00")[1][2].click_no_wait 

红宝石1.8.6的效果很好。

错误:

代码语言:javascript
复制
C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-2.0.4/lib/watir/locator.rb:11:in `normalize_specifiers!': undefined method `each' 
for :ole_object:Symbol (NoMethodError) 

from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-2.0.4/lib/watir/locator.rb:43:in `set_specifier' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-2.0.4/lib/watir/container.rb:109:in `tagged_element_locator' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-2.0.4/lib/watir/element.rb:36:in `locate' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-2.0.4/lib/watir/table.rb:249:in `locate' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-2.0.4/lib/watir/element.rb:75:in `assert_exists' 
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-2.0.4/lib/watir/table.rb:285:in `[]' 
from //coldstorage/intranet/QA/Automation/Clickability for Blank DB- New Look and Feel/Admin Tab/Click_User_page_CC.rb:75:in `<main>' 

>Exit code: 0 

注:当我尝试做的时候

代码语言:javascript
复制
ie.frame(:id,"body").table(:id,"recordListButton_UserList_ctl00").click_no_wait

在Watir 1.9.2中,它正在起作用。我不明白为什么

代码语言:javascript
复制
table(:id,"recordListButton_UserList_ctl00")[1][2] 

导致了错误。错误是抱怨“每个”方法,而我在脚本中任何地方都没有使用该方法。请帮帮我!

我的机器上安装了以下宝石:

代码语言:javascript
复制
activesupport (2.3.9) 
builder (3.0.0) 
commonwatir (2.0.4, 2.0.3, 1.7.1, 1.6.7) 
ffi (1.0.9 x86-mingw32) 
firewatir (1.7.1, 1.6.7) 
hoe (2.12.3) 
minitest (1.6.0) 
nokogiri (1.5.0 x86-mingw32) 
rake (0.8.7) 
rautomation (0.6.3) 
rdoc (2.5.8) 
s4t-utils (1.0.4) 
user-choices (1.1.6.1) 
watir (2.0.4) 
win32-api (1.4.8 x86-mingw32) 
win32-process (0.6.5) 
windows-api (0.4.0) 
windows-pr (1.2.1) 
xml-simple (1.1.1) 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-10 01:01:12

上面我看到的错误似乎表明您不仅升级了Ruby,而且还升级了Watir,因为我看到2.0.4是watir文件路径的一部分。

Watir1.x和watir2.x之间的一个主要变化是从一个基于一个的索引转移到基于零的索引。

您是否修改了代码中的索引值,或将以下内容添加到脚本的顶部以使用旧的基于1的索引?

代码语言:javascript
复制
require "watir"; Watir.options[:zero_based_indexing] = false

这可能是由于试图发送watir来管理一个根本不存在的元素而产生的错误。表中一行中只有两列的第三个单元格。

如果您要单击的链接是表中的第一个链接,这可能解释为什么仅使用.link (与.link(:index => 0)相同)工作正常,但尝试逐行和逐行处理项和单元格则不正确。

票数 0
EN

Stack Overflow用户

发布于 2011-11-10 09:05:37

这听起来就像票证第459次 (click_no_wait不适用于框架)。但据我所知那张票是固定的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8069798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档