Использование капибары и селена для наведения на элемент - PullRequest
8 голосов
/ 17 июня 2011

У меня есть ссылка на страницу, которая появляется только при наведении курсора на определенный элемент.Но я не могу понять, как имитировать это, а затем щелкнуть ссылку, чтобы проверить огурец с помощью капибары и селена.

Кто-нибудь знает, как это сделать?Я пытался выполнить javascript, а также пытался напрямую поговорить с драйвером селена, но пока мне не повезло ...

Ответы [ 4 ]

3 голосов
/ 20 сентября 2013

Этому вопросу несколько лет, поэтому ответ мог измениться.В новых версиях Capybara есть несколько различных способов сделать это, в зависимости от используемого вами драйвера.

Для селена вы можете выполнить javascript:

page.execute_script '$("#element").trigger("mouseover")'

Более новые версииСелен-webdriver поддерживает метод наведения:

find('#element').hover

Для capybara-webkit драйвер поддерживает запуск событий на элементе:

find('#element').trigger(:mouseover)

Первоначально я нашел ответ на этот вопрос от здесь и здесь .

2 голосов
/ 17 июня 2011

Используйте Selenium fireEvent для события mouseover, а затем сделайте паузу в течение необходимого времени наведения.

0 голосов
/ 24 декабря 2012

Мне наконец удалось заставить Capybara + драйвер Selenium "зависать" над элементом.Это код, который я использую:

module Capybara
  module Node
    class Element
      def hover
        @session.driver.browser.action.move_to(self.native).perform
      end
    end
  end
end
0 голосов
/ 22 июня 2011

Я работал над аналогичным, который я использовал ниже, смотрите, это может вам помочь.

Использование Selenium IDE.1. Перейдите на нужную страницу.2. Запустите селен IDE и получите цель Link.3. Измените команду на mouseOver Дважды щелкните команду в Selenium IDE.4. Покажет ссылку, которая вам нужна.5. Снова начните запись и запишите нужную ссылку.

При двойном щелчке по команде mouseOver создается имитация наведения мыши через IDE, и вы можете использовать мышь для записи всплывающей ссылки.

Спасибо

...