{"id":47438,"date":"2013-09-06T17:33:12","date_gmt":"2013-09-06T14:33:12","guid":{"rendered":"https:\/\/www.altoros.com\/blog\/?p=47438"},"modified":"2021-12-10T12:20:45","modified_gmt":"2021-12-10T09:20:45","slug":"running-capybara-tests-for-ruby-applications-in-remote-browsers","status":"publish","type":"post","link":"https:\/\/www.altoros.com\/blog\/running-capybara-tests-for-ruby-applications-in-remote-browsers\/","title":{"rendered":"Running Capybara Tests for Ruby Apps in Remote Browsers"},"content":{"rendered":"<p>Do you have concerns about how your Ruby applications work in Internet Explorer? Do you believe that checking for bugs by emulating previous versions with different modes is enough? Even if you skip some legacy versions, you can still face problems with lack of support for the JSON format, HTML5 tags, or ECMAScript, limitations for CSS selectors, and many other issues that cannot be detected by just changing a browser mode. In fact, there are a lot of bugs that can only be reproduced on certain platforms and browsers.<\/p>\n<p>To identify such problems, we suggest that you run your <a href=\"https:\/\/en.wikipedia.org\/wiki\/Capybara_(software)\" rel=\"noopener noreferrer\" target=\"_blank\">Capybara<\/a> tests in remote browsers. In this blog post, I provide step-by-step instructions on how to use virtual machines and <a href=\"https:\/\/www.browserstack.com\/\" rel=\"noopener noreferrer\" target=\"_blank\">BrowserStack<\/a> along with code, which you can copy-paste to save time.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_79_2 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.altoros.com\/blog\/running-capybara-tests-for-ruby-applications-in-remote-browsers\/#Using_a_personal_virtual_machine\" >Using a personal virtual machine<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.altoros.com\/blog\/running-capybara-tests-for-ruby-applications-in-remote-browsers\/#Using_BrowserStack\" >Using BrowserStack<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.altoros.com\/blog\/running-capybara-tests-for-ruby-applications-in-remote-browsers\/#Conclusion\" >Conclusion<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.altoros.com\/blog\/running-capybara-tests-for-ruby-applications-in-remote-browsers\/#Further_reading\" >Further reading<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Using_a_personal_virtual_machine\"><\/span>Using a personal virtual machine<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Feel free to read Capybara\u2019s <a href=\"https:\/\/rubydoc.info\/github\/teamcapybara\/capybara\" rel=\"noopener noreferrer\" target=\"_blank\">docs<\/a> before working with the product.<\/p>\n<ul>\n<li>Install a virtual machine (VM) with a desired browser. You can use your own distributive or <a href=\"https:\/\/github.com\/xdissent\/ievms\" rel=\"noopener noreferrer\" target=\"_blank\">ievms<\/a>.<\/li>\n<li>Make sure Java and desired browsers are installed on the VM.<\/li>\n<li>Run <a href=\"https:\/\/www.selenium.dev\/downloads\/\" rel=\"noopener noreferrer\" target=\"_blank\">Selenium Server<\/a> on the VM.<\/li>\n<\/ul>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\njava \u2013jar selenium-server-standalone-2.35.0.jar -role hub -multiWindow -browserSessionReuse\r\n<\/pre>\n<ul>\n<li>Run on <a href=\"https:\/\/www.selenium.dev\/documentation\/en\/webdriver\/\" rel=\"noopener noreferrer\" target=\"_blank\">WebDriver<\/a>.<\/li>\n<\/ul>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">java \u2013jar selenium-server-standalone-2.35.0.jar -role webdriver -hub http:\/\/127.0.0.1:4444\/grid\/register -port 5555<\/pre>\n<ul>\n<li>Configure forwarding TCP port 4444 from a host machine to a guest machine.<\/li>\n<li>Add to <code style=\"color: black; background-color: #e6e6e6;\">spec_helper.rb<\/code>.<\/li>\n<\/ul>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nif ENV&#x5B;&quot;SELENIUM&quot;] == 'remote'   \r\n   require 'selenium-webdriver'   \r\n    url = 'http:\/\/127.0.0.1:4444\/wd\/hub'   \r\n   capabilities = Selenium::WebDriver::Remote::Capabilities.internet_explorer\r\n    Capybara.register_driver :remote_browser do |app|\r\n     Capybara::Selenium::Driver.new(app,\r\n                                    :browser =&amp;gt; :remote, :url =&amp;gt; url,\r\n                                    :desired_capabilities =&amp;gt; capabilities)\r\n   end\r\n    Capybara.server_port = 3010\r\n   ip = `ifconfig | grep 'inet ' | grep -v 127.0.0.1 | cut -d ' ' -f2`.strip\r\n   Capybara.app_host = http:\/\/#{ip}:#{Capybara.server_port}\r\n   Capybara.current_driver = :remote_browser\r\n   Capybara.javascript_driver = :remote_browser \r\nend\r\n<\/pre>\n<ul>\n<li>Run tests.<\/li>\n<\/ul>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nSELENIUM=remote bundle exec rspec spec\/features\/\r\n<\/pre>\n<ul>\n<li>You can easily change Internet Explorer to Chrome, Firefox, etc.,<\/a> and run tests again.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Using_BrowserStack\"><\/span>Using BrowserStack<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>Create account on BrowserStack<\/li>\n<li>Download and put <code style=\"color: black; background-color: #e6e6e6;\">BrowserStackTunnel.jar<\/code> to <code style=\"color: black; background-color: #e6e6e6;\">spec\/support\/<\/code><\/li>\n<li>Make sure Java and <a href=\"https:\/\/en.wikipedia.org\/wiki\/CURL\" rel=\"noopener noreferrer\" target=\"_blank\">\u0441URL<\/a> are installed on you VM<\/li>\n<li>Add to <code style=\"color: black; background-color: #e6e6e6;\">spec_helper.rb<\/code><\/li>\n<\/ul>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n  if ENV&#x5B;&quot;SELENIUM&quot;] == 'browserstack'\r\n    require 'selenium-webdriver'\r\n    url = &quot;https:\/\/#{AppConfig.browserstack&#x5B;'username']}:#{AppConfig.browserstack&#x5B;'accesskey']}@hub.browserstack.com\/wd\/hub&quot;\r\n    capabilities = Selenium::WebDriver::Remote::Capabilities.new\r\n    capabilities&#x5B;'browser'] = ENV&#x5B;'browser'] || 'IE'\r\n    capabilities&#x5B;'browser_version'] = ENV&#x5B;'browser_version'] || '8.0'\r\n    capabilities&#x5B;'os'] = 'Windows'\r\n    capabilities&#x5B;'os_version'] = '7'\r\n    capabilities&#x5B;'browserstack.tunnel'] = 'true'\r\n    capabilities&#x5B;'browserstack.debug'] = 'true'\r\n    Capybara.register_driver :browser_stack do |app|\r\n      Capybara::Selenium::Driver.new(app,\r\n                                     :browser =&amp;gt; :remote, :url =&amp;gt; url,\r\n                                     :desired_capabilities =&amp;gt; capabilities)\r\n    end\r\n    Capybara.server_port = 3010\r\n    Capybara.default_wait_time = 10\r\n    Capybara.current_driver = :browser_stack\r\n    Capybara.javascript_driver = :browser_stack\r\n    RSpec.configure do |config|\r\n     config.before(:all) do\r\n       `java -jar spec\/support\/BrowserStackTunnel.jar #{AppConfig.browserstack&#x5B;'accesskey']} 127.0.0.1,#{Capybara.server_port},0 -v &amp;gt;log\/browserstack.log 2&amp;gt;&amp;amp;1 &amp;amp;`\r\n        visit '\/'\r\n        until (`curl -s -o \/dev\/null -w &quot;%{http_code}&quot; http:\/\/127.0.0.1:45691`.to_i == 200)\r\n          sleep 1\r\n        end\r\n      end\r\n      config.after(:all) do\r\n        `ps -ef | awk '\/BrowserStackTunnel.*,#{Capybara.server_port},\/{print $2}' | xargs kill -9`\r\n      end    \r\nend  \r\nend\r\n<\/pre>\n<ul>\n<li>Run tests<\/li>\n<\/ul>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nSELENIUM=browserstack browser=IE browser_version=11.0 bundle exec rspec spec\/features\/<\/pre>\n<p>Testing in remote browsers assumes using Selenium WebDriver. So, you should make sure all your tests are passed using Selenium if previously you used <a href=\"https:\/\/en.wikipedia.org\/wiki\/WebKit\" rel=\"noopener noreferrer\" target=\"_blank\">WebKit<\/a> or another tool.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>By using a personal VM, you have more control over your browsers, you can even change browser profiles or other options. However, BrowserStack allows you to run your tests on a lot of different combinations of <a href=\"https:\/\/www.browserstack.com\/list-of-browsers-and-platforms\/automate\" rel=\"noopener noreferrer\" target=\"_blank\">platforms and browsers<\/a> and even mobile emulators without any additional installations. Speed of testing, though, depends on network latency and a selected plan. Fortunately, you can run tests in <a href=\"https:\/\/www.browserstack.com\/automate\/ruby#parallel-tests\" rel=\"noopener noreferrer\" target=\"_blank\">several treads<\/a> across different browsers or tests.<\/p>\n<p>In addition, BrowserStack gives you the possibility to do live testing and debug your local application or folder with a prototype. You can even check responsiveness.<\/p>\n<p>Feel free to improve my Capybara integration with BrowserStack. I\u2019ll be happy if it inspires someone to create a new gem. You can ask any questions here or in Skype of BrowserStack support.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Further_reading\"><\/span>Further reading<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/how-to-integrate-independent-qa-testing-to-shorten-development-cycles\/\">How to Integrate Independent QA Testing to Shorten Development Cycles<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/ruby-integration-testing-tools-population-census-2014\/\">Ruby Integration Testing Tools: Population Census 2014<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/speeding-up-ruby-tests\/\">Speeding Up Ruby Tests<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>How to automatically test your application in real browsers<\/p>\n","protected":false},"author":62,"featured_media":57979,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[214],"tags":[1000,895],"class_list":["post-47438","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-github","tag-research-and-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Running Capybara Tests for Ruby Apps in Remote Browsers | Altoros<\/title>\n<meta name=\"description\" content=\"This blog post provides step-by-step instructions on how to use virtual machines and BrowserStack to automatically test your application in real browsers.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.altoros.com\/blog\/running-capybara-tests-for-ruby-applications-in-remote-browsers\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Running Capybara Tests for Ruby Apps in Remote Browsers | Altoros\" \/>\n<meta property=\"og:description\" content=\"How to automatically test your application in real browsers\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.altoros.com\/blog\/running-capybara-tests-for-ruby-applications-in-remote-browsers\/\" \/>\n<meta property=\"og:site_name\" content=\"Altoros\" \/>\n<meta property=\"article:published_time\" content=\"2013-09-06T14:33:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-12-10T09:20:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/09\/running-capybara-tests-for-ruby-applications-in-remote-browsers.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"576\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Eugene Melnikov\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Eugene Melnikov\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.altoros.com\/blog\/running-capybara-tests-for-ruby-applications-in-remote-browsers\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/running-capybara-tests-for-ruby-applications-in-remote-browsers\/\",\"name\":\"Running Capybara Tests for Ruby Apps in Remote Browsers | Altoros\",\"isPartOf\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/running-capybara-tests-for-ruby-applications-in-remote-browsers\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/running-capybara-tests-for-ruby-applications-in-remote-browsers\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/09\/running-capybara-tests-for-ruby-applications-in-remote-browsers.png\",\"datePublished\":\"2013-09-06T14:33:12+00:00\",\"dateModified\":\"2021-12-10T09:20:45+00:00\",\"author\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/2347aafc28e3658aea99b1b6671f7b70\"},\"description\":\"How to automatically test your application in real browsers\",\"breadcrumb\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/running-capybara-tests-for-ruby-applications-in-remote-browsers\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.altoros.com\/blog\/running-capybara-tests-for-ruby-applications-in-remote-browsers\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/running-capybara-tests-for-ruby-applications-in-remote-browsers\/#primaryimage\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/09\/running-capybara-tests-for-ruby-applications-in-remote-browsers.png\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/09\/running-capybara-tests-for-ruby-applications-in-remote-browsers.png\",\"width\":1024,\"height\":576},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.altoros.com\/blog\/running-capybara-tests-for-ruby-applications-in-remote-browsers\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.altoros.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Running Capybara Tests for Ruby Apps in Remote Browsers\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\",\"url\":\"https:\/\/www.altoros.com\/blog\/\",\"name\":\"Altoros\",\"description\":\"Insight\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.altoros.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/2347aafc28e3658aea99b1b6671f7b70\",\"name\":\"Eugene Melnikov\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2020\/03\/melnikov-96x96.jpg\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2020\/03\/melnikov-96x96.jpg\",\"caption\":\"Eugene Melnikov\"},\"description\":\"Eugene Melnikov is a senior software engineer at Altoros. He mainly specializes in Ruby and Ruby-based frameworks, as well as in JavaScript development, including Node.js, jQuery, and AngularJS. Working at Altoros, Eugene has also designed and implemented a variety of SQL and NoSQL database solutions. He recently became engaged in creating data-driven software for IoT applications. Check out Eugene's GitHub profile.\",\"url\":\"https:\/\/www.altoros.com\/blog\/author\/eugene-melnikov\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Running Capybara Tests for Ruby Apps in Remote Browsers | Altoros","description":"This blog post provides step-by-step instructions on how to use virtual machines and BrowserStack to automatically test your application in real browsers.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.altoros.com\/blog\/running-capybara-tests-for-ruby-applications-in-remote-browsers\/","og_locale":"en_US","og_type":"article","og_title":"Running Capybara Tests for Ruby Apps in Remote Browsers | Altoros","og_description":"How to automatically test your application in real browsers","og_url":"https:\/\/www.altoros.com\/blog\/running-capybara-tests-for-ruby-applications-in-remote-browsers\/","og_site_name":"Altoros","article_published_time":"2013-09-06T14:33:12+00:00","article_modified_time":"2021-12-10T09:20:45+00:00","og_image":[{"width":1024,"height":576,"url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/09\/running-capybara-tests-for-ruby-applications-in-remote-browsers.png","type":"image\/png"}],"author":"Eugene Melnikov","twitter_misc":{"Written by":"Eugene Melnikov","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.altoros.com\/blog\/running-capybara-tests-for-ruby-applications-in-remote-browsers\/","url":"https:\/\/www.altoros.com\/blog\/running-capybara-tests-for-ruby-applications-in-remote-browsers\/","name":"Running Capybara Tests for Ruby Apps in Remote Browsers | Altoros","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/running-capybara-tests-for-ruby-applications-in-remote-browsers\/#primaryimage"},"image":{"@id":"https:\/\/www.altoros.com\/blog\/running-capybara-tests-for-ruby-applications-in-remote-browsers\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/09\/running-capybara-tests-for-ruby-applications-in-remote-browsers.png","datePublished":"2013-09-06T14:33:12+00:00","dateModified":"2021-12-10T09:20:45+00:00","author":{"@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/2347aafc28e3658aea99b1b6671f7b70"},"description":"How to automatically test your application in real browsers","breadcrumb":{"@id":"https:\/\/www.altoros.com\/blog\/running-capybara-tests-for-ruby-applications-in-remote-browsers\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.altoros.com\/blog\/running-capybara-tests-for-ruby-applications-in-remote-browsers\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/running-capybara-tests-for-ruby-applications-in-remote-browsers\/#primaryimage","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/09\/running-capybara-tests-for-ruby-applications-in-remote-browsers.png","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2013\/09\/running-capybara-tests-for-ruby-applications-in-remote-browsers.png","width":1024,"height":576},{"@type":"BreadcrumbList","@id":"https:\/\/www.altoros.com\/blog\/running-capybara-tests-for-ruby-applications-in-remote-browsers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.altoros.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Running Capybara Tests for Ruby Apps in Remote Browsers"}]},{"@type":"WebSite","@id":"https:\/\/www.altoros.com\/blog\/#website","url":"https:\/\/www.altoros.com\/blog\/","name":"Altoros","description":"Insight","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.altoros.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/2347aafc28e3658aea99b1b6671f7b70","name":"Eugene Melnikov","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2020\/03\/melnikov-96x96.jpg","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2020\/03\/melnikov-96x96.jpg","caption":"Eugene Melnikov"},"description":"Eugene Melnikov is a senior software engineer at Altoros. He mainly specializes in Ruby and Ruby-based frameworks, as well as in JavaScript development, including Node.js, jQuery, and AngularJS. Working at Altoros, Eugene has also designed and implemented a variety of SQL and NoSQL database solutions. He recently became engaged in creating data-driven software for IoT applications. Check out Eugene's GitHub profile.","url":"https:\/\/www.altoros.com\/blog\/author\/eugene-melnikov\/"}]}},"_links":{"self":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/47438","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/users\/62"}],"replies":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/comments?post=47438"}],"version-history":[{"count":19,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/47438\/revisions"}],"predecessor-version":[{"id":65363,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/47438\/revisions\/65363"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media\/57979"}],"wp:attachment":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media?parent=47438"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/categories?post=47438"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/tags?post=47438"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}