2011-08-10 21 views
6

Salatalıkta bir html öğesinin en yakın ebeveyini bulmak istiyorum. Jquery'nin .closest() işlevi gibi ..closest() in Capybara

bu benim (sözde) kodudur:

aspect = find('.dropdown li:contains('+selector+')') 
    dropdown = aspect.closest('.dropdown') #<-- the closest() function does not exist 

    if not aspect.hasClass('.selected') 
    dropdown.click 
    sleep 1 
    aspect.click 
    end 

herkes nasıl bu kullanarak Capybara gerçekleştirmek için bana söyleyebilir?

Şerefe!

Manuel

cevap

1

Bu evrensel bir çözüm değildir, ama yapmak istediğiniz tüm öğeyi tıklayın ise, doğrudan jQuery kullanmanızı öneririz olacaktır:

Bunun dışında
page.execute_script('$(...).closest(...).click()') 

, Capybara yok Bir .closest yöntemi, ancak birçok durumda, seçici ile daha yaratıcı olmak (muhtemelen XPath kullanarak) hile yapabilir.