Javascript下拉菜单访问Watir-webdriver

时间:2012-07-23 22:09:14

标签: watir watir-webdriver

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

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

然而,这不是一个有效的代码和平,我只是不知道正确的方式。

enter image description here

enter image description here

< 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>

2 个答案:

答案 0 :(得分: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

这假设“搜索规范”链接也与“操作”链接位于同一帧中。

答案 1 :(得分:0)

试试这个:

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

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