首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法读取span元素

无法读取span元素
EN

Stack Overflow用户
提问于 2013-01-02 12:53:49
回答 2查看 528关注 0票数 3

嗨,因为我做了创业板安装watir watir-经典,我的脚本不再阅读跨元素。你能帮我解决这个问题吗?

这里是我的例子

代码语言:javascript
复制
Rented 
<SPAN class="displayData" style="padding-left:2px; width: 15;"><span name="tab4RateInfoForm.vehicleGroup"/>F</span></SPAN>&nbsp;

我的代码

代码语言:javascript
复制
carGroup=browser.span(:name => 'tab4RateInfoForm.vehicleGroup').text

错误消息

代码语言:javascript
复制
C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-3.3.0/lib/watir-classic/locator.rb:79:in `rescue in match?': name is an unknown way of finding a <span> element (tab4RateInfoForm.vehicleGroup) (Watir::Exception::MissingWayOfFindingObjectException)
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-3.3.0/lib/watir-classic/locator.rb:76:in `match?'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-3.3.0/lib/watir-classic/locator.rb:62:in `block in match_with_specifiers?'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-3.3.0/lib/watir-classic/locator.rb:59:in `each'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-3.3.0/lib/watir-classic/locator.rb:59:in `all?'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-3.3.0/lib/watir-classic/locator.rb:59:in `match_with_specifiers?'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-3.3.0/lib/watir-classic/locator.rb:22:in `block (2 levels) in each'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-3.3.0/lib/watir-classic/locator.rb:140:in `block in each_element'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-3.3.0/lib/watir-classic/locator.rb:139:in `each'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-3.3.0/lib/watir-classic/locator.rb:139:in `each_element'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-3.3.0/lib/watir-classic/locator.rb:21:in `block in each'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-3.3.0/lib/watir-classic/locator.rb:20:in `each'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-3.3.0/lib/watir-classic/locator.rb:20:in `each'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-3.3.0/lib/watir-classic/locator.rb:150:in `locate'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-3.3.0/lib/watir-classic/element.rb:33:in `locate'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-3.3.0/lib/watir-classic/element.rb:63:in `assert_exists'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-3.3.0/lib/watir-classic/element.rb:132:in `text'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-02 15:36:21

解决方案1:使用css定位器

您必须使用css定位器(或xpath):

代码语言:javascript
复制
carGroup = browser.span(:css, 'span[name="tab4RateInfoForm.vehicleGroup"]').text

解决方案2:猴子补丁

或者,如果您有大量使用name属性的遗留脚本,您可以对Watir进行猴子补丁,使其具有所有元素的name方法(如果需要的话,可以使用特定的元素)。

在任何需要watir的地方添加以下内容:

代码语言:javascript
复制
Watir::IE.new(true)
module Watir
  class Element
    def name
      return self.attribute_value('name')
    end
  end
end

您原来的方法现在应该起作用了。

票数 4
EN

Stack Overflow用户

发布于 2013-01-02 13:29:35

看起来span元素不能再通过name属性访问了。

试试这个(使用泛型element而不是span):

代码语言:javascript
复制
carGroup=browser.element(:name => 'tab4RateInfoForm.vehicleGroup').text
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14122421

复制
相关文章

相似问题

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