Как выполнить команду в уже открытом браузере из файла ruby
Я использую фреймворк cucumber для тестирования веб-приложения, так как я разрабатываю свои скрипты, мне приходится снова и снова запускать браузер каждый раз после добавления чего-либо в мой код. У меня вопрос "Можно ли выполнить команду в уже открытом браузере из файла ruby (.rb)"??. Что сэкономит мне много времени. Моя структура основана на огурце, капибаре и селене.
Заранее спасибо
3 ответа
Невозможно использовать существующий браузер с Selenium Webdriver.
Однако существуют драйверы (Capybara-Webkit, Poltergeist, HdmlUnitDriver Webdriver), которые работают быстрее и имеют меньше времени запуска, чем браузеры. Может быть, они будут полезны для вас.
Не уверен, что именно вы хотите... если вам придется "F5" каждый раз, когда вы что-то меняете в UI-коде, вы можете рассмотреть использование защитного камня.
guard + guard-livereload и rack-livereload, включенные в ваше приложение, автоматически обновляют браузер, если вы редактируете "views".
Я использовал версию Selenium Webdriver с исправленными обезьянами, которая держит браузер PhantomJS открытым между тестовыми прогонами. Смотрите этот пост в блоге: http://blog.sharetribe.com/2014/04/07/faster-cucumber-startup-keep-phantomjs-browser-open-between-tests/
Хитрость заключается в том, чтобы заглушить Selenium::WebDriver::PhantomJS::Service.create_process
метод и сказать Selenium Driver использовать порт по умолчанию 8910, даже если он зарезервирован.
Вы можете добавить этот фрагмент кода в ваш файл config / test.rb:
class Selenium::WebDriver::PortProber
def self.free?(port)
true
end
end
class Selenium::WebDriver::PhantomJS::Service
def create_process(args)
puts "Starting monkey-patched PhantomJS Selenium Webdriver"
Struct.new("ChildProcessFake") do
def start() end
def exited?() true end
end.new
end
end
Теперь вы можете запустить PhantomJS на вкладке терминала:
phantomjs --webdriver=8910
А когда у вас запущен PhantomJS, вы можете начать тесты Cucumber.
Очевидно, это работает только для PhantomJS, но нечто подобное может работать и с другими браузерами.