{"id":7669,"date":"2022-01-26T06:03:20","date_gmt":"2022-01-25T21:03:20","guid":{"rendered":"https:\/\/yumishin.com\/?p=7669"},"modified":"2022-01-26T06:03:20","modified_gmt":"2022-01-25T21:03:20","slug":"selenium","status":"publish","type":"post","link":"https:\/\/yumishin.com\/?p=7669","title":{"rendered":"\u300cSelenium::WebDriver::Error::WebDriverError:\u300d\u3078\u306e\u5bfe\u51e6"},"content":{"rendered":"<p><code>RSpec<\/code>\u5c0e\u5165\u307e\u308f\u308a\u306e\u30a8\u30e9\u30fc\u306b\u906d\u9047\u3057\u305f\u306e\u3067\u3001\u5bfe\u51e6\u6cd5\u306b\u3064\u3044\u3066\u307e\u3068\u3081\u3066\u304a\u304d\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<h2 id=\"i-0\">\u300cSelenium::WebDriver::Error::WebDriverError:\u300d\u3078\u306e\u5bfe\u51e6<\/h2>\n<h3 id=\"i-1\">\u30a8\u30e9\u30fc\u5185\u5bb9<\/h3>\n<div class=\"pre_tag\"><span><i class=\"fa fa-code\"><\/i> \u30b3\u30fc\u30c9<\/span><\/p>\n<pre><code>Selenium::WebDriver::Error::WebDriverError:\nUnable to find chromedriver. Please download the server from\nhttps:\/\/chromedriver.storage.googleapis.com\/index.html and place it somewhere on your PATH.\nMore info at https:\/\/github.com\/SeleniumHQ\/selenium\/wiki\/ChromeDriver.<\/code><\/pre>\n<\/div>\n<p>\ud83d\udc46\u3067\u3059\u304c\u8981\u3059\u308b\u306b<code>chromedriver<\/code>\u304c\u898b\u3064\u304b\u3089\u306a\u3044\u3068\u3044\u3046\u8a71\u3067\u3059\u3002<\/p>\n<h3 id=\"i-2\">\u89e3\u6c7a\u7b56<\/h3>\n<p>\ud83d\udc47\u4ee5\u4e0b\u306e\u8a18\u4e8b\u3092\u53c2\u8003\u306b\u3001<code>gem<\/code>\u30d5\u30a1\u30a4\u30eb\u3078<code>selenium-webdriver<\/code>\u3068<code>capybara<\/code>\u306e\u8ffd\u8a18\u3092\u3057\u307e\u3057\u305f\u3002<\/p>\n<p><a href=\"https:\/\/qiita.com\/ngron\/items\/f61b8635b4d67f666d75\">https:\/\/qiita.com\/ngron\/items\/f61b8635b4d67f666d75<\/a><\/p>\n<p>\u203b<code>chromedriver<\/code>\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u3059\u304c\u3001\u79c1\u306e\u5834\u5408<code>Dockerfile<\/code>\u3067\u306f\u306a\u304f<code>docker-compose.yml<\/code>\u306e\u65b9\u3067\u3001\u8a18\u8f09\u3057\u3066\u307e\u3057\u305f\u3002<\/p>\n<p>\u4ee5\u4e0b\u306f\u4f5c\u6210\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u3068\u3001<code>docker-compose.yml<\/code>\u306e\u30d5\u30a1\u30a4\u30eb\u3060\u3051\u8f09\u305b\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n<div class=\"pre_tag\"><span><i class=\"fa fa-code\"><\/i> spec\/support\/selenium_chrome.rb # \u65b0\u305f\u306b\u4f5c\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059<\/span><\/p>\n<pre><code>require 'capybara\/rspec'\nrequire 'selenium-webdriver'\n\nCapybara.register_driver :selenium_chrome_headless do |app|\n  options = ::Selenium::WebDriver::Chrome::Options.new\n\n  options.add_argument('--headless')\n  options.add_argument('--no-sandbox')\n  options.add_argument('--disable-dev-shm-usage')\n  options.add_argument('--window-size=1400,1400')\n\n  driver = Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)\nend\n\nCapybara.javascript_driver = :selenium_chrome_headless<\/code><\/pre>\n<\/div>\n<div class=\"pre_tag\"><span><i class=\"fa fa-code\"><\/i> spec\/rails_helper<\/span><\/p>\n<pre><code>Dir[Rails.root.join('spec', 'support', '**', '*.rb')].sort.each { |f| require f } # \u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3055\u308c\u3066\u3044\u308b\u3068\u3053\u308d\u304c\u3042\u308b\u306e\u3067\u3001\u305d\u308c\u3092\u4fee\u6b63\u3059\u308b\u5f62\u3067\u3082OK\u3067\u3059\n\nRSpec.configure do |config|\n  config.before(:each, type: :system) do\n    driven_by :rack_test\n  end\n\n  config.before(:each, type: :system, js: true) do\n    driven_by :selenium_chrome_headless\n  end\nend<\/code><\/pre>\n<\/div>\n<div class=\"pre_tag\"><span><i class=\"fa fa-code\"><\/i> Gemfile<\/span><\/p>\n<pre><code>group :development, :test do\n  # See https:\/\/guides.rubyonrails.org\/debugging_rails_applications.html#debugging-with-the-debug-gem\n  gem \"debug\", platforms: %i[mri mingw x64_mingw]\n  gem \"rspec-rails\"\nend\n\ngroup :development do\n  # Use console on exceptions pages [https:\/\/github.com\/rails\/web-console]\n  gem \"web-console\"\n\n  # Add speed badges [https:\/\/github.com\/MiniProfiler\/rack-mini-profiler]\n  # gem \"rack-mini-profiler\"\n\n  # Speed up commands on slow machines \/ big apps [https:\/\/github.com\/rails\/spring]\n  # gem \"spring\"\n  gem 'pry-byebug'\n  gem 'rubocop', require: false\n  gem 'rubocop-performance', require: false\n  gem 'rubocop-rails', require: false\n  gem 'rubocop-rspec'\nend\n\ngroup :test do\n  # Use system testing [https:\/\/guides.rubyonrails.org\/testing.html#system-testing]\n  gem \"capybara\"\n  gem \"selenium-webdriver\"\n  gem \"webdrivers\", require: !ENV['SELENIUM_REMOTE_URL']\nend<\/code><\/pre>\n<\/div>\n<div class=\"pre_tag\"><span><i class=\"fa fa-code\"><\/i> docker-compose.yml<\/span><\/p>\n<pre><code>version: \"3.9\"\nservices:\n  db:\n    image: postgres\n    volumes:\n      - .\/tmp\/db:\/var\/lib\/postgresql\/data\n    environment:\n      POSTGRES_PASSWORD: password\n  web:\n    build: .\n    command: bash -c \"rm -f tmp\/pids\/server.pid &amp;&amp; bundle exec rails s -p 3000 -b '0.0.0.0'\"\n    stdin_open: true\n    tty: true\n    environment:\n      SELENIUM_REMOTE_URL: http:\/\/webdriver_chrome:4444\/wd\/hub\n    volumes:\n      - .:\/myapp\n    ports:\n      - \"3000:3000\"\n    depends_on:\n      - db\n      - webdriver_chrome\n  webdriver_chrome:\n    image: selenium\/standalone-chrome<\/code><\/pre>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>RSpec\u5c0e\u5165\u307e\u308f\u308a\u306e\u30a8\u30e9\u30fc\u306b\u906d\u9047\u3057\u305f\u306e\u3067\u3001\u5bfe\u51e6\u6cd5\u306b\u3064\u3044\u3066\u307e\u3068\u3081\u3066\u304a\u304d\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002 \u300cSelenium::WebDriver::Error::WebDriverError:\u300d\u3078\u306e\u5bfe\u51e6 \u30a8\u30e9\u30fc\u5185\u5bb9 \ud83d\udc46\u3067\u3059\u304c\u8981\u3059\u308b\u306bch &#8230; <\/p>\n","protected":false},"author":1,"featured_media":7757,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[256],"tags":[],"class_list":{"0":"post-7669","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-it","8":"entry"},"_links":{"self":[{"href":"https:\/\/yumishin.com\/index.php?rest_route=\/wp\/v2\/posts\/7669","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yumishin.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yumishin.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yumishin.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yumishin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7669"}],"version-history":[{"count":3,"href":"https:\/\/yumishin.com\/index.php?rest_route=\/wp\/v2\/posts\/7669\/revisions"}],"predecessor-version":[{"id":7756,"href":"https:\/\/yumishin.com\/index.php?rest_route=\/wp\/v2\/posts\/7669\/revisions\/7756"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/yumishin.com\/index.php?rest_route=\/wp\/v2\/media\/7757"}],"wp:attachment":[{"href":"https:\/\/yumishin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7669"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yumishin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7669"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yumishin.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7669"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}