как решить ошибку "неопределенный метод `network_traffic''

Я получаю эту ошибку после недавнего переключения с полтергейста на вебкит без головы

*** Исключение NoMethodError: неопределенный метод `network_traffic' для #Capybara::Selenium::Driver:0x007fc2f30bbbd0>

Оскорбительная строка кода

!page.driver.network_traffic.collect(&:response_parts).any?(&:empty?)

person american-ninja-warrior    schedule 23.11.2017    source источник


Ответы (2)


Всякий раз, когда вы вызываете page.driver.xxxxxx, вы вызываете специфичные для драйвера методы, которые могут не поддерживаться каким-либо другим драйвером. network_traffic — это один из тех специфичных для драйвера методов, который поддерживается только Полтергейстом. В будущем, если вы хотите, чтобы ваши тесты были совместимы с несколькими драйверами, держитесь подальше от любых вызовов page.driver.xxxx.

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

person Thomas Walpole    schedule 23.11.2017

Драйвер Capybara должен быть Poltergeist, а вы используете Selenium.

network-traffic не реализован ни для чего, кроме Poltergeist.

Подробнее.

person Aleksei Matiushkin    schedule 23.11.2017
comment
Да неужели? И почему так? - person Aleksei Matiushkin; 24.11.2017
comment
Драйвер Capybara НЕ ОБЯЗАТЕЛЬНО должен быть полтергейстом, пока вы используете Selenium. - person american-ninja-warrior; 24.11.2017
comment
Если вам нужен network-traffic, реализованный только в драйвере Poltergeist, драйвер должен быть Poltergeist, иначе вы получите ту же ошибку. Также перестаньте использовать капслок для выделения, это глупо. - person Aleksei Matiushkin; 24.11.2017