小编MrA*_*oIt的帖子

Ruby on Rails无法加载此类文件 - selenium-webdriver错误

我正在测试使用Ruby on Rails中的phantomjs运行selenium webdriver.我在我的电脑上进行本地测试.

当我运行"ruby test.rb"时,以下代码在我的测试Ruby脚本中运行正常

  def google_title
    require 'selenium-webdriver'
    driver = Selenium::WebDriver.for :phantomjs
    driver.navigate.to "https://www.google.com"
    page_title = driver.title
    puts page_title
  end

  google_title
Run Code Online (Sandbox Code Playgroud)

我在application_controller.rb文件中有相同的代码:

  def google_title
    require 'selenium-webdriver'
    driver = Selenium::WebDriver.for :phantomjs
    driver.navigate.to "https://www.google.com"
    page_title = driver.title
    render text: page_title
  end
Run Code Online (Sandbox Code Playgroud)

但是,当我运行我的应用程序时,我得到一个"无法加载此类文件 - selenium-webdriver"错误.

在此输入图像描述

我已将此添加到我的Gemfile并运行bundle install但得到相同的错误.

gem 'selenium-webdriver', '~> 2.45'
Run Code Online (Sandbox Code Playgroud)

当我运行gem list --local时,它会显示selenium已安装.

任何帮助,将不胜感激.

更新:

我运行几乎完全相同的代码,但使用watir-webdriver并获得相同的结果.Ruby脚本运行正常,但当我试图从Rails运行时,为watir-webdriver提供了"无法加载此类文件"错误.

我用nokogiri进行了另一次测试,效果很好.它既是自我又是Rails.

UPDATE2:

它似乎是我正在做的事情,而不是我的测试环境.我刚刚在在线IDE上运行相同的代码并得到了相同类型的错误:

在此输入图像描述

UPDATE3:

以下是使用watir-webdriver和headless运行测试时application_controller.rb文件的完整内容.我得到了相同的结果.也许我在这里设置错了?

class ApplicationController < ActionController::Base
  def google_title
    require 'watir-webdriver'
    require 'headless'
    headless = Headless.new
    headless.start
    b = Watir::Browser.start 'www.google.com'
    page_title …
Run Code Online (Sandbox Code Playgroud)

phantomjs selenium-webdriver ruby-on-rails-4

6
推荐指数
1
解决办法
1493
查看次数

升级到Rails 5.0.6后,邮件gem不发送电子邮件

我将我的Rails应用程序从4.2.5升级到5.0.6.现在Mail邮件不会发送电子邮件.我似乎没有得到错误.我将Mail gem更新为最新版本但没有运气.我不知道还有什么可以尝试的.

我在跑步:

Rails 5.0.6

Ruby 2.3.0

邮件2.7.0

控制器/ send_email.rb

 class SendEmail < ApplicationController
    def initialize(to_address, from_address, email_pass, subject, body)

        begin
            options = {
                :address              => 'abc.prod.1234.secureserver.net',
                :port                 => '465',
                :domain               => 'mydomain.com',
                :user_name            => from_address,
                :password             => email_pass,
                :authentication       => :login,
                :ssl                  => true,
                :openssl_verify_mode  => 'none'
            }

            Mail.defaults do
                delivery_method :smtp, options
            end

            Mail.deliver do
                to to_address
                from from_address
                subject subject
                body body
            end

            puts("\nSent message. From: #{from_address} To: #{to_address} \nMessage body: \n#{body}")

            return …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails actionmailer mail-gem

5
推荐指数
1
解决办法
373
查看次数

比较Ruby中缺少元素的两个数组

我有两个有数千个元素的数组.我需要通过将它与另一个数组进行比较来找到一个数组中缺少的元素.有没有办法在不迭代整个数组的情况下获取缺失的元素?或者有什么比我正在做的更快?

这是我现在使用的:

def find_missing(array1, array2)
    missing_elements = []
    array1.each { |e|  
        unless array2.include? e
            missing_elements << e
        end
    }

    return missing_elements
end

array1 = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
array2 = [1, 2, 4, 5, 6, 7, 9]

puts find_missing(array1, array2)
Run Code Online (Sandbox Code Playgroud)

ruby arrays

1
推荐指数
1
解决办法
1352
查看次数