我知道其他问题已经引起错误,但没有任何有用的答案。
我正在使用Capybara,Turnip和Selenium与IEDriver,浏览器 - IE8,对Jenkins CI进行runnin测试 保护模式 - 关闭,所有安全级别 - 低
我的能力
来自CI日志
Capabilities [{platform=WINDOWS, javascriptEnabled=true, elementScrollBehavior=0, ignoreZoomSetting=false, enablePersistentHover=false, ie.ensureCleanSession=false, browserName=internet explorer, enableElementCacheCleanup=true, unexpectedAlertBehaviour=dismiss, version=8, ie.usePerProcessProxy=false, cssSelectorsEnabled=true, ignoreProtectedModeSettings=true, requireWindowFocus=false, handlesAlerts=true, initialBrowserUrl=http://localhost:18573/, ie.forceCreateProcessApi=false, nativeEvents=false, browserAttachTimeout=0, ie.browserCommandLineSwitches=, takesScreenshot=true}]
从我的代码
when 'selenium-ie-remote'
client = Selenium::WebDriver::Remote::Http::Default.new
client.timeout = ENV['CLIENT_TIMEOUT'] ? ENV['CLIENT_TIMEOUT'].to_i : 60
capabilities = Selenium::WebDriver::Remote::Capabilities.new
capabilities[:introduce_flakiness_by_ignoring_security_domains] = true
capabilities[:javascript_enabled] = true
capabilities[:css_selectors_enabled] = true
capabilities[:ignore_protected_mode_settings] = true
Capybara.register_driver :selenium do |app|
Capybara::Selenium::Driver.new(app,
:browser => :remote,
:url => "http://#{ENV['VM']}:4444/wd/hub",
:http_client => client,
:desired_capabilities => :internet_explorer,
:desired_capabilities => capabilities)
end
步骤
中出现错误step 'I should see :text' do |variable|
wait_until_true { page.should have_content variable }
end
def wait_until_true(wait_time_seconds = Capybara.default_wait_time)
start_time = Time.now
loop do
return true if yield
break unless Time.now - start_time <= wait_time_seconds
sleep(0.05)
end
end
即使没有方法wait_until_true
,也会出现错误,因此它不是失败的原因。
此外,该错误会不时出现(5次重新运行中有1次),因此不一致。
此外,我注意到当应用程序自行重定向到另一个页面时会出现错误(例如,单击“保存”按钮 - 出现索引页面)
有人知道解决方案吗?
答案 0 :(得分:0)
我的一个决定是等待Capybara等待时间
def found_this_element(text)
start_time = Time.now
begin
page.should have_content text
rescue => e
throw e if Time.now - start_time >= Capybara.default_wait_time
retry
end
end
但它是解决方法,如何更改IE的设置,以帮助省略错误...