2013-11-27 62 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的作品。