【问题标题】:How can I get click events to work when chaining elements in Watir?在 Watir 中链接元素时,如何让点击事件起作用?
【发布时间】:2010-10-05 21:03:06
【问题描述】:

我正在尝试在 Watir 中为我们的 Web 应用程序设置一些 UI 测试。我在让点击事件传播时遇到了麻烦。我们正在使用 EXTJS 制作选项卡,这些选项卡是生成的 html 中的跨度。

如果我选择这样的跨度,它会起作用:

span1 = @browswer.span(:text=>"Tab Name")
span1.click

问题是当我有一个同名的子选项卡并希望能够区分它们时。我发现明确选择子选项卡的唯一方法是首先选择子选项卡所​​在的列表,然后从中选择子选项卡。

ul = @browser.ul(:class=>/tab-strip-bottom/)
span2 = ul.span(:text=>"Tab Name")
span2.click

span2.click 似乎没有做任何事情。 span1 和 span2 之间唯一的不同(我可以看到)是容器属性。 span1.@container = @browser, span2.@container = ul.

我尝试在 span2 上设置容器

span2.instance_variable_set("@container", @browser)

但是我最终还是点击了错误的标签。对此有什么想法吗? 谢谢!

【问题讨论】:

    • 位置
      位置

标签: ruby cucumber watir


【解决方案1】:

请分享HTML代码,我什至不明白这个问题。

也许您需要触发一些 JavaScript 事件。见How to find out which JavaScript events fired?

【讨论】:

    【解决方案2】:

    我终于解决了我在使用 xpath 时遇到的问题。

    tab = @browser.element_by_xpath(".//*[contains(@class,'x-tab-strip-top')]//*/em/span/span[. =\"#{value}\"]") 
    tab.click
    

    这并不理想,因为 xpath 代码非常丑陋。如果可以通过使用 watir 的“糖果”选择器来选择元素,那么可维护性会更好。

    【讨论】:

    • xpath 解决方案并没有我最初想象的那么难看。我可以使用与 Watir 方法所允许的方式非常相似的相对 xpath 连接在一起。所以我可以有一个方法将 xpath 返回到所需的选项卡条,另一个找到选项卡相对于选项卡条的 xpath)和另一个找到菜单项(相对于选项卡)。将它们放在一起,我就有了相关元素的绝对 xpath。
    • 有时可能需要这种东西,但在你的情况下,我认为你可以使用 Watir,因为它被设计为使用。 Embedded_tab = @browser.span(:text => "Tab Name").span(:text => "Tab Name") 为您提供嵌入的选项卡。甚至更好: parent_tab = @browser.div(:id, 'somethingUnique').span(:text => "Tab Name") child_tab = parent_tab.span(:text => "Tab Name") 将始终给父母(非嵌入式)选项卡(将 div 替换为真实的内容)和与之相关的子选项卡。这消除了调试您的 3 个函数和解密 XPath 以确定您的代码在做什么的需要。
    【解决方案3】:

    我们有一个多层次的网页菜单,听起来就像你所拥有的那样。鼠标会在进入下一个选择(直接对角线)时离开菜单的第二级,并且第二级菜单将关闭。这就是你在说的吗?我们通过触发 javascript 来解决它,因为菜单项称为 javascript(Zeljko 的解决方案)。我们只需要记下菜单项的 ID。不确定这是否比 xpath 解决方案更丑或更漂亮。我说“我们”是因为我需要帮助。

    【讨论】:

      【解决方案4】:

      当有多个匹配对象时,您可以指定要使用的索引。这对你有用吗?

      @browser.span(:text=>"Tab Name", :index => 2).click
      

      索引值与您正在搜索的容器相关。有关搜索对象时使用的所有可能性的表格,请参阅:HTML Elements Supported By Watir

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-12
        • 1970-01-01
        • 2020-09-15
        • 2021-02-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多