如何单击下拉列表

时间:2013-08-09 00:39:14

标签: ruby watir-webdriver

<div id="ab100">
    <iframe width="1000" height="600" src="...">
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <body>
    <form id="form1" action=".." method="post">
        <select id="abl03" style="..">..\',\'\')', 0)" name="l03ue">
                <option value="0" selected="selected"><Select a Value></option>
                <option value="1">AB</option>
                <option value="2">AD</option>
                <option value="3">BC</option>
                <option value="4">CA</option>
            </select>
        </div>

当我想点击DDL时,我通常会这样做:

browser.select_list(:id => 'ab103').select('CA')

,它将选择选项value =“4”。但是我收到了这个错误:

Watir::Exception::UnknownObjectException: unable to locate element, using {:id=>
"abl03", :tag_name=>"select"}
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.2/lib/watir
-webdriver/elements/element.rb:490:in `assert_exists'

也许这个问题是由于它在iframe中。 提前谢谢。

2 个答案:

答案 0 :(得分:2)

一些事情:

  1. 没有开头&lt; select&gt;在你的例子中标记。我假设<div id="abl03">应该是<select id="abl03">或者它只是遗漏了。
  2. <select id="abl03">的ID为abl03,但select_list(:id => 'ab103')中的ID定位符值为ab103
  3. <Select a Value>中的
  4. <option value="0" selected="selected"><Select a Value></option>应为&lt;Select a Value&gt;
  5. 因此,unable to locate element错误有效,因为&lt; select&gt;具有指定ID的标记不存在。

    如果您遇到框架问题,请查看http://watirwebdriver.com/frames/https://github.com/watir/watirspec/blob/master/frame_spec.rb以获取示例。

答案 1 :(得分:0)

我在stackoverflow上看到了类似的问题。很抱歉再次发布。感谢。

browser.frame(:index => 0).select_list(:id => ab103).select(/CA/)

欢迎任何其他建议。感谢。