Доступ к инструментам разработки браузера и захват сетевого трафика с помощью Watir
У вас есть требование захвата сетевого трафика из браузера во время выполнения тестов автоматизации.
Наткнулся на пост ниже, но не уверен, что он был включен как часть Watir 7. Спасибо, если есть какой-либо пример использования инструментов разработки и захвата сетевого трафика, такого как вызовы API, с помощью Watir. Спасибо!!
2 ответа
В настоящее время Watir не реализует эти функции. У вас есть доступ ко всему, получив драйвер селена с
#wd
метод. Ну вот так:
requests = []
browser.wd.intercept do |request, &continue|
requests << request
continue.call(request)
end
browser.goto page
expect(requests).not_to be_empty
Для них нет хорошего руководства в документации по селену, но вот другие примеры из спецификаций: https://github.com/SeleniumHQ/selenium/blob/trunk/rb/spec/integration/selenium/webdriver/devtools_spec.rb
Это должно работать, если вы также заинтересованы в ответе
log_name = "/path/to/logs/network.log"
log_file = File.open(log_name, 'w')
browser.wd.intercept do |request, &continue|
continue.call(request) do |response|
log_file << "#{request.id} \t
#{request.method} \t
#{response.code} \t
#{request.url} \n"
end
end
и правда работает, но что-то не то
undefined method `each_with_object' for nil:NilClass
/selenium-webdriver-4.1.0/lib/selenium/webdriver/devtools/response.rb:38:in `from'
/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb:109:in `intercept_response'
/selenium-webdriver-4.1.0/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb:68:in `block in intercept'
/selenium-webdriver-4.1.0/lib/selenium/webdriver/devtools.rb:155:in `block in callback_thread'```