Capybara click_link иногда не работает - PullRequest
7 голосов
/ 18 августа 2011

Я использую Capybara 1.0.0 с конфигурацией по умолчанию.

click_link "некоторый существующий текст" # - иногда - не работает. странно.

find_link "некоторый существующий текст" # всегда работает

Это может быть проблема синхронизации; или, может быть, нет, потому что find_link прекрасно работает.

Я проверил полученный выходной файл через save_and_open_page, это тоже нормально. Кроме того, я увеличил время ожидания и т. Д. Но и это не помогло.

Прежде чем полностью перейти к источнику Капибары. Как вы думаете, что пошло не так?

Привет

Ответы [ 3 ]

0 голосов
/ 25 апреля 2016

Попробуйте использовать этот синтаксис click_link('', href: some_path).

0 голосов
/ 11 января 2017

Ссылка может быть перекрыта другим элементом (например, всплывающим окном) или активирована Ajax через некоторое время после загрузки страницы.Это сильно зависит от того, с какой страницей вы работаете.

В качестве общих советов я бы порекомендовал использовать средства поиска напрямую, например:

  # Note :visible => true, it will throw an error if element is overlapped
  find(:xpath, "//a[.='some existing text']", visible: true).click

  # Another approach
  wait_until(15) { first(:xpath, "//a..", visible: true) }.click
0 голосов
/ 31 октября 2012

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

В зависимости от того, как вы настроили Rspec, вероятно, это случайный порядокспецификации запускаются при каждом запуске пакета.Это означает, что иногда все проходит, а иногда нет.

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

...