【问题标题】:How to select from frames with the Watir Ruby Gem如何使用 Watir Ruby Gem 从帧中进行选择
【发布时间】:2012-09-06 03:41:48
【问题描述】:

当尝试选择列表元素的选项时,我尝试这样做:

myvar=ie.select_list(:id, 'myid').option(:text, 'mytext').select 

但由于某种原因,当我在 irb 中使用 Watir 访问网站并尝试操纵任何项目时,我得到了这个异常。

Watir::Exception::UnknownObjectException: Unable to locate element...etc

我正在浏览器中查看页面,但使用 .html 时未显示完整页面。看起来页面的其余部分被隐藏了,我不知道如何进入/绕过它。

irb(main):011:0> ie.html
=> "<HTML><HEAD><TITLE>My Title</TITLE>\r\n
<SCRIPT language=JavaScript type=text/javascript src=\"../../script.js\"></SCRIPT>\r\n</HEAD><FRAMESET id=mainFrameSet name=mainFrameSet rows=100%,0%><FRAME id=frmMain src=\"DefaultT.cfm?ID=2197024\" name=frmMain><FRAME id=frmHidden src=\"Dummy.html\" name=frmHidden scrolling=no></FRAMESET></HTML>" 

编辑: 回想起来,我已经更改了标题,以便更准确地解决我遇到的问题。新的服务员用户很难找到关于 Watir 和 Frames 的信息。最初的标题类似于“在加密站点上使用 Watir”。我已经认真编辑了这个问题,以了解我所问问题的本质。我非常感谢那些试图回答一个对 Web 和一般编程知识很少的新 Ruby 用户的胡言乱语的人。如有必要,请参阅以前的修订版。

【问题讨论】:

    标签: ruby exception watir frames frameset


    【解决方案1】:

    根据您添加的 html,您的网页正在使用框架。与其他元素不同,您必须明确指定要使用的框架。

    您可能想要 id 为“frmMain”的框架,因此请尝试:

    myvar=ie.frame(:id, 'frmMain').select_list(:id, 'myid').option(:text, 'mytext').select 
    

    【讨论】:

      【解决方案2】:

      我的猜测是当您尝试访问该元素时该元素不在页面上。

      试试这个(请注意when_present):

      myvar=ie.select_list(:id, 'myid').when_present.option(:text, 'mytext').select 
      

      更多信息:http://watirwebdriver.com/waiting/

      【讨论】:

      • 不幸的是,我在 IRB 工作,所以这似乎不太可能。我确实尝试过(在 IRB 中),但它在 60 秒后超时。感谢您的等待信息。如果我真的能够访问这些元素,我相信它很快就会派上用场。
      • 你没有处理整个故事,因为这个答案是预先编辑的。我相信你会想出答案的。再次感谢您的贡献以及您支持我们 Watir 用户的惊人方式。我到处都见过你。我不想让你认为它被忽视或不被重视。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-31
      • 1970-01-01
      • 1970-01-01
      • 2019-12-17
      • 1970-01-01
      • 2015-07-27
      相关资源
      最近更新 更多