1

尝试选择列表元素的选项时,我尝试执行以下操作:

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 用户的胡言乱语的人。如有必要,请参阅以前的修订。

4

2 回答 2

2

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

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

myvar=ie.frame(:id, 'frmMain').select_list(:id, 'myid').option(:text, 'mytext').select 
于 2012-09-13T13:13:00.923 回答
0

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

试试这个(请注意when_present):

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

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

于 2012-09-13T08:56:19.233 回答