【问题标题】:Watir Radio Button not found未找到 Watir 单选按钮
【发布时间】:2015-02-07 00:40:55
【问题描述】:

我想在 Watir 中设置此单选按钮,但找不到它:

HTML:

<input type="RADIO" style="-moz-user-focus: normal;" tabindex="2421" handlenativeevents="false" value="3G" $9a="$9b" $89="isc_RadioItem_3" id="isc_1HV" name="network">

鲁比:

if BROWSER.radio(:value => '3G').exists?
  BROWSER.radio(:value => '3G').set
end

可能是因为我们的代码包含大写的RADIO? (由 SmartGWT 生成)

有什么解决方法吗?

【问题讨论】:

    标签: radio-button watir


    【解决方案1】:

    检查 DOM 以查看它是否在一个框架内,或者是某个导致问题的容器。如果您无法按值访问单选按钮,您可以通过其他方式引用它,例如 index.html。找到单选按钮的容器,并通过第 N 个索引引用它。因此,如果您的按钮是表 1 的表 12 中的第二个按钮,您可以像这样磨练它:

    BROWSER.table(:index, 1).table(:index, 12).radio(:index, 2)
    

    或者如果它是页面上的第二个单选按钮(总是),那么......

    BROWSER.radio(:index, 2)
    

    您还可以通过其他方式引用单选按钮:

    BROWSER.radio(:value, '3G')
    BROWSER.radio(:name, 'network')
    BROWSER.radio(:id, 'isc_1HV')
    

    为了进一步的帮助,我需要知道您是否可以在该页面上引用同一容器中的其他元素。有关如何引用元素的信息,请参见此处:HTML elements supported by Watir

    如果您完全陷入困境,您将需要 xpath。但坦率地说,这应该是最后的手段。

    【讨论】:

      【解决方案2】:

      另一种选择。如果它没有响应收音机,因为它不是单选按钮(正如 Watir 所理解的那样),那么您需要找到另一种方法来单击该对象。您可以尝试单击容器以查看是否有效,但如果没有,则需要使用硬件单击。您可以找到一个硬件点击解决方案作为鸭拳(这是我的答案之一:here)。您可以自定义此代码以接受 x 和 y 修饰符,如果您愿意,可以使用 .left_click 硬件单击任何元素,包括容器。所以 left_click 带有 x 和 y 修饰符的 RADIO 容器指向单选按钮。这比硬件点击绝对 x/y 位置稍微更动态一些,但它会将您的鼠标光标从您身上移开并使用它来点击屏幕。我希望这会有所帮助!

      【讨论】:

        【解决方案3】:

        可能在一个框架中。错误消息应该指向正确的方向。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-02
          • 2011-08-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多