как проверить переменную window.status - PullRequest
0 голосов
/ 19 октября 2019

Я использую библиотеку wkhtmlpdf для преобразования pdf со страницы HTML. эта страница зависит от тяжелых функций JavaScript (ajax-вызовов, карт Google), поэтому мне пришлось использовать опции --window-status и --javascript-delay. Я устанавливаю значение window.status="ready_to_print;", когда все будет сделано. Он работает правильно, и рендеринг PDF, как и должно быть.

Теперь я хочу создать модуль ruby ​​on rails, чтобы проверить, что страница HTML отрисована в правильном состоянии. Как я могу проверить это, используя rpec, капибару или любым другим способом?

Ответы [ 2 ]

1 голос
/ 20 октября 2019

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

evaluate_script('window.status')

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

expect(evaluate_script('window.status')).to eq 'ready_to_print'
1 голос
/ 20 октября 2019

Я не знаю, есть ли открытый метод в привязках селенового рубина, но watir DSL имеет метод Browser::status, который реализован следующим образом и должен выполнить свою задачу:

def status
  execute_script 'return window.status;'
end
...