0

我在尝试访问网站下拉菜单中的某些链接时遇到问题。当您将光标放在按钮上时,如第一张图片所示,菜单会下拉。下面是网页脚本的图片。我想要做的是单击下拉菜单中的搜索规范按钮。类似的代码会是这样的:

e.frame(:name => "content").frame(:name => "main").a(:index => 0).click.a(:index => 10).click 

但是,这不是有效的代码和平,我只是不知道正确的做法。

在此处输入图像描述

在此处输入图像描述

< e.frame(:name => "content").frame(:name => "main")
=> #<Watir::Frame:0x7f74b4d4 located=false selector={:name=>"main"}>
irb(main):064:0> my_frame.a(:text => 'Operations').click
Watir::Exception::UnknownObjectException: unable to locate element, using {:text
=>"Operations", :tag_name=>"a"}
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.1/lib/watir
-webdriver/elements/element.rb:365:in `assert_exists'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.1/lib/watir
-webdriver/elements/element.rb:95:in `click'
        from (irb):64
        from C:/Ruby193/bin/irb:12:in `<main>'
irb(main):065:0>
4

2 回答 2

0

下拉菜单似乎不在您发布的 HTML 部分中。它可能在 HTML 中更靠后。

您可以通过文本进行定位,而不是尝试通过索引进行定位,这很容易改变。尝试:

my_frame = e.frame(:name => "content").frame(:name => "main")
my_frame.a(:text => 'Operations').click
my_frame.a(:text => 'Search Specifications').click

这假设“搜索规范”链接也与“操作”链接在同一框架中。

于 2012-07-24T02:34:41.687 回答
0

尝试这个:

myframe.a(:text, 'Operations').fire_event 'mouseover'
myframe.a(:text, 'Search Specifications').click

不确定这是否完美,但想法是在选择下拉菜单后显示下拉菜单中的链接。玩弄其他元素。fire_event 方法是我所知道的使下拉菜单出现的最佳方法。

于 2012-07-24T14:44:25.630 回答