【问题标题】:Hover and click dynamic content悬停并单击动态内容
【发布时间】:2015-12-28 23:03:34
【问题描述】:

浏览了很多问题和论坛,但我无法弄清楚。 Watir 非常新鲜。

在用户可以创建组的网页上进行测试(解决方案是在 kendoui 框架中构建的)

创建一个组。

browser.button(:id => "add_group").click

browser.text_field(:id => "group_name").set("delete")

browser.button(:id => "add_group").click

组已创建,然后我想删除该组。如果用户将鼠标悬停在新组上,则会在组容器的右侧出现一个 thrashcan 符号,然后单击该组会被删除。

代码:

<div id="left_pane" class="side_panel k-pane k-scrollable" style="position: absolute; top: 0px; width: 220px; height: 724px; left: 0px;">
<ul id="toolbox_panel" class="k-widget k-reset k-header k-panelbar" data-role="panelbar">
    <li class="k-item k-state-default k-first">
    <li id="group_ungrouped" class="k-item k-state-default" data-role="droptarget">
    <li id="group_delete" class="k-item k-state-default k-last" data-role="droptarget">
    <span class="k-link k-header k-state-hover">delete</span>
        <!--snipp below is only visible on hover of delete element-->
        delete
        <span class="minicon remove_pod"></span>    
        </li>

我用 watir 尝试过的几件事:

browser.div(:id, 'left_pane').ul(:id, 'toolbox_panel').li(:id, 'group_delete').span(:class, 'minicon remove_pod').fire_event "onclick"

给出以下内容:

C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.1/lib/watir-webdriver/elements/element.rb:36 5:在assert_exists': unable to locate element, using {:class=>"minicon remove_pod", :tag_name=>"spa n"} (Watir::Exception::UnknownObjectException) from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.1/lib/watir-webdriver/elements/ element.rb:247:infire_event' 来自 C:/bin/scripts/ruby/sm_groups.rb:34:in `'

其他测试:

browser.div(:id, 'left_pane').ul(:id, 'toolbox_panel').li(:id, 'group_delete').span(:class, /k-state-hover/).span (:class, 'minicon remove_pod').fire_event "onclick"

browser.div(:id, 'left_pane').ul(:id, 'toolbox_panel').li(:id, 'group_delete').span(:class, 'k-link k-header k-state -hover').span(:class, 'minicon remove_pod').click

我有点不知道如何悬停“group_delete”,然后在悬停时找到删除/小图标 remove_pod 并单击它以删除创建的内容。

如果需要更多信息,请告诉我。

最好的问候

【问题讨论】:

  • 错误信息显示“无法定位元素”,因此请确保您正确识别元​​素。

标签: watir


【解决方案1】:

要悬停和元素,试试这个:

browser.element(how, what).hover

【讨论】:

  • 感谢您的评论。尝试悬停,但在最后一个元素处失败。 browser.element(:id, 'left_pane').ul(:id, 'toolbox_panel').li(:id, 'group_delete').span(:class, 'k-link k-header').hover 浏览器。 element(:class, 'minicon remove_pod').fire_event "onclick"(也尝试使用 .click)给出:C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.1/lib /watir-webdriver/elements/element.rb:36 5:in `assert_exists': 无法定位元素,使用 {:class=>"minicon remove_pod", :tag_name=>"span"} (Watir::Exception:: UnknownObjectException)
  • 最后一行是 browser.span(:class, 'minicon remove_pod').fire_event "onclick" 而不是 browser.element 该错误消息。对此感到抱歉。
  • 它显示删除图标(thrashcan),但显示为灰色。我需要将鼠标悬停在 thrashcan 上方才能访问删除功能 (minicon remove_pod)。
【解决方案2】:

决定修改网页中的代码,使最后一个 span 类在 firebug 中可见,而无需鼠标悬停。

Watir 做到了这一点:

browser.element(:id, 'left_pane')
    .ul(:id, 'toolbox_panel')
    .li(:id, 'group_delete')
    .span(:class, 'k-link k-header')
    .span(:class, 'minicon remove_item')
    .click()

【讨论】:

    猜你喜欢
    • 2016-10-27
    • 1970-01-01
    • 2015-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多