1

我正在使用 watir-webdriver 和 cucumber 和 ruby​​ 来为网站构建自动回归测试。Cucumber 和 watir-webdriver 在用于实际站点的 rails 应用程序之外。为了让我的测试在 Jenkins 上运行,我想开始使用 phantomjs 无头运行测试。为了访问网站的预生产环境,我需要通过网站的基本身份验证。

我遇到的问题是:当 phantomjs 尝试访问具有基本身份验证的外部 URL 时,它会挂断并且无法通过基本身份验证用户名/密码。

关于如何让 phantomjs 识别如下 URL 的任何想法:

https://admin:password@test.website.com"

环境.rb:

BASE_URL = Configuration["base_url"]
require "watir-webdriver"

case ENV['BROWSER']
  when 'chrome'
    profile = Selenium::WebDriver::Chrome::Profile.new
    browser = Watir::Browser.new :chrome, :profile => profile
  when 'firefox'
    profile = Selenium::WebDriver::Firefox::Profile.new
    browser = Watir::Browser.new :firefox, :profile => profile
  when 'phantomjs'
    browser = Watir::Browser.new :phantomjs
  end
end

配置.yml

website:
    base_url: "https://admin:password@test.website.com"

运行黄瓜:

cucumber -p website BROWSER=phantomjs

结果:

Scenario: User Logs In
    Given a logged out user
    timed out after 30 seconds, waiting for {foobar...}
4

1 回答 1

2
caps = { 'phantomjs.page.settings.userName' => 'admin', 'phantomjs.page.settings.password' => 'password' }
driver = Selenium::WebDriver.for(:phantomjs, :desired_capabilites => caps)
browser = Watir::Browser.new(driver)
browser.goto 'https://test.website.com'
于 2013-10-15T18:49:38.840 回答