2013-11-27 61 views
1

我试图点击一个按钮使用水豚。我尝试过所有我能想到的组合,但没有运气。试图点击“删除”链接。只有当您将鼠标悬停在表格中的行上时,才会显示删除链接。麻烦悬停并点击使用水豚和Xpath的按钮

这是HTML:

<tbody> 
    <tr class="even" id="informal_6"> 
    <td class="columnOrganizationNameColumnValue" id="informal_7"> 

     <div> 
     <a id="showLink_0" title="Organization Details" class="viewLink"> 
      Institution/Automation 
     </a> 
     </div> 

     <div class="gridMenuDescription"> 
      &nbsp; 
     </div> 

     <div class="gridMenu"> 
      <a id="gridMenuDirectLink_1" title="Edit Organization" class="gridMenuItem"> 
      edit 
      </a> 

      <a id="gridMenuDirectLink_2" class="gridMenuItem delete"> 
      delete 
      </a> 
     </div> 
    </td> 

     </tbody> 

我想指出的是, “gridMenu” 分区,当你悬停它使用萤火虫在它变成:

 <div class="gridMenu hover gridMenuShow"> 

有些事情我试过了,但没有运气:

find(:xpath, '//*[(@id = "gridMenuDirectLink_2")]').click 

    find("#informal_6").find("#informal_7").find(".gridMenu.hover.gridMenuShow").find(".gridMenuItem.delete").click 

建议?

+0

你提到的Xpath不是一个按钮,它是一个链接。 试试这个: click_link'delete' – NMKP

+0

试过了,没有工作,我应该补充一点,当你将鼠标悬停在表中的行上时,只显示删除链接 – Farooq

回答

5

后尝试的疯狂的量尝试不同的东西,我能得到它与此代码的工作:

find('#informal_6').hover.find('.gridMenu').hover.find('.gridMenuItem.delete').click 
0

尝试将下面的代码悬停在行上。

page.driver.browser.mouse.move_to(page.driver.browser.find_element(:ID => “定位器”))

+0

我对此调用了一个.text,文字在页面上,但不是'删除'链接/按钮... – Farooq

+0

尝试在将鼠标悬停在该特定行上之后获取页面上的文本。 – NMKP

0

我有哪里AJAX编辑&删除链接,当鼠标悬停只能出现在日历界面每个日历条目。这很好,很紧凑,但是我很难让水豚点击那些动态显示的元素,并且在父元素上使用.hover似乎没有什么区别。所以,我想这是工作很好,到目前为止蛮力方法:

# Use Jquery to force display a hidden element. Useful for getting at links 
# that are dynamically displayed. 
# Call it like: js_show(".entry.scheduled[data-id=\"#{@da3.id}\"] .actions") 
def js_show(selector) 
    page.execute_script(" $('#{selector}').show(); ") 
end 

def js_hide(selector) 
    page.execute_script(" $('#{selector}').hide(); ") 
end 

现在,当我需要点击那个唯一的悬停等显示的项目,我可以叫js_show(".whatever.container.selector")强制链接可显示,那么page.find(...).click的作品。