【发布时间】:2019-10-24 15:04:47
【问题描述】:
[警告:前方咆哮。请不要编辑咆哮。我想知道我遇到的是否正常。这些障碍绝对毁了我作为开发人员的一天。它们比尝试解决我打算解决的任何业务问题更困难。]
水豚。机械化。诺科切里。硒。等等。
我尝试构建一个最简单的 Ruby 小程序,它执行以下操作:
- 打开网络浏览器
- 导航到网站
- 点击链接
。 . .但基本上没有成功。**
这是我尝试过的:
爬虫.rb
require "capybara"
require "capybara/dsl"
class Crawler
include Capybara::DSL
def initialize
visit "http://www.google.com"
end
end
crawler = Crawler.new
当我运行该代码时,我得到一个错误。
rack-test requires a rack application, but none was given (ArgumentError)
我在文档中没有看到应该修复它的地方:
require "capybara"
require "capybara/dsl"
class Crawler
include Capybara::DSL
def initialize
Capybara.default_driver = :selenium
visit "http://www.google.com"
end
end
crawler = Crawler.new
然后,当我解决该错误时,我得到另一个与其他依赖项相关的错误。
Unable to find Mozilla geckodriver. Please download the server from https://github.com/mozilla/geckodriver/releases and place it somewhere on your PATH. More info at https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver. (Selenium::WebDriver::Error::WebDriverError)
我下载了驱动程序,尽管阅读并遵循另一组椭圆方向,但不知道如何实际安装该东西,但已经清楚地感觉到我正在走一条不会刮牦牛的道路产生任何结果,因为我想做的就是让 Ruby 转到一个愚蠢的网页并点击一个愚蠢的链接。
我不会尝试将此代码作为测试的一部分运行。我实际上只是希望 Ruby 使用 Capybara(或任何可以完成工作的工具,尽管最好是 Capybara)打开一个 Web 浏览器(我可以看到)并按照我的要求进行操作。但无论出于何种原因,这都是极其困难的,即使它显然已经完成了十亿次。
伙计们/女孩们,我在这里做错了什么?每当我尝试测试一个简单的想法时,像这样的东西会占用太多时间。
** 这绝对是令人愤怒的——尤其是因为您认为它就像遵循给定 gem 的文档一样简单。但是,一般来说,我发现 gems 是椭圆记录的。大约 90% 的时间,我必须去 Stackoverflow 或 google 某人的教程,以学习如何使用上述流行的 gem 做最基本的事情,因为它们很少能正常工作。几乎总是有一些疯狂的体操,如果没有别人的帮助,我对如何克服的线索为零。
抱歉,这只是对开源软件的一般抱怨。我什至不是初级开发人员,而且我发现有时我需要花费几个小时来获得一个 gem 来完成它应该做的任何基本事情。
【问题讨论】:
-
欢迎来到 Stack Overflow。这里不是吐槽的地方。 SO 是帮助您解决代码问题,而不是充当发声器。此外,SO 不是讨论列表,而是参考书,您的问题刚刚创建了一篇新文章,描述了如何解决您提出的问题。你认为在一本咆哮的参考书中写一篇文章是否合适?你会在百科全书、教科书或食谱中看到这样的内容吗?
标签: ruby-on-rails ruby selenium capybara