我的测试尝试访问网页并验证页面上是否存在某些元素。例如,它访问http://foo.com/homepage.html
并检查徽标图像,然后访问http://bar.com/store/blah.html
并检查页面上是否显示某些文本。我的目标是访问经过 Kerberos 身份验证的网页。
我发现 Kerberos 代码如下:
主文件
uri = URI.parse(Capybara.app_host)
kerberos = Kerberos.new(uri.host)
@kerberos_token = kerberos.encoded_token
kerberos.rb 文件
class Kerberos
def initialize(host)
@host = host
@credentials = AuthGss::Negotiate.new("HTTP@#{@host}")
@credentials.cache = ENV['KRB5CCNAME'] if ENV['KRB5CCNAME']
@token = @credentials.step("")
end
def encoded_token
Base64.encode64(@token).gsub(/\n/,"")
end
end
它利用Capybara.app_host
价值。我无法弄清楚将Capybara.app_host
值设置为什么。我不知道它做了什么。我有Capybara.run_server = false
。有人可以帮助我了解如何使用Capybara.app_host
以及这与 Kerberos 身份验证有何关系?