- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
运行 cucumber 测试给我以下错误
end of file reached (EOFError)
/usr/lib64/ruby/2.0.0/net/protocol.rb:153:in `read_nonblock'
/usr/lib64/ruby/2.0.0/net/protocol.rb:153:in `rbuf_fill'
/usr/lib64/ruby/2.0.0/net/protocol.rb:134:in `readuntil'
/usr/lib64/ruby/2.0.0/net/protocol.rb:144:in `readline'
/usr/lib64/ruby/2.0.0/net/http/response.rb:39:in `read_status_line'
/usr/lib64/ruby/2.0.0/net/http/response.rb:28:in `read_new'
/usr/lib64/ruby/2.0.0/net/http.rb:1406:in `block in transport_request'
/usr/lib64/ruby/2.0.0/net/http.rb:1403:in `catch'
/usr/lib64/ruby/2.0.0/net/http.rb:1403:in `transport_request'
/usr/lib64/ruby/2.0.0/net/http.rb:1376:in `request'
/usr/lib64/ruby/2.0.0/net/http.rb:1369:in `block in request'
/usr/lib64/ruby/2.0.0/net/http.rb:852:in `start'
/usr/lib64/ruby/2.0.0/net/http.rb:1367:in `request'
./features/step_definitions/my_steps.rb:110:in `block (2 levels) in <top (required)>'
./features/step_definitions/my_steps.rb:58:in `each'
./features/step_definitions/my_steps.rb:58:in `/^action$/'
features/myFeature.feature:18:in `Then I should XY'
Connection refused - connect(2) (Errno::ECONNREFUSED)
/usr/lib64/ruby/2.0.0/net/http.rb:878:in `initialize'
/usr/lib64/ruby/2.0.0/net/http.rb:878:in `open'
/usr/lib64/ruby/2.0.0/net/http.rb:878:in `block in connect'
/usr/lib64/ruby/2.0.0/timeout.rb:66:in `timeout'
/usr/lib64/ruby/2.0.0/net/http.rb:877:in `connect'
/usr/lib64/ruby/2.0.0/net/http.rb:862:in `do_start'
/usr/lib64/ruby/2.0.0/net/http.rb:851:in `start'
/usr/lib64/ruby/2.0.0/net/http.rb:1367:in `request'
./features/support/env.rb:45:in `After'
我的 bundle gem 列表:
* activemodel (4.2.6)
* activerecord (4.2.6)
* activesupport (4.2.6)
* addressable (2.4.0)
* arel (6.0.3)
* builder (3.2.2)
* bundler (1.6.5)
* capybara (2.6.2)
* childprocess (0.5.9)
* cucumber (2.3.3)
* cucumber-core (1.4.0)
* cucumber-wire (0.0.1)
* data_magic (0.22)
* diff-lcs (1.2.5)
* faker (1.6.3)
* ffi (1.9.10)
* gherkin (3.2.0)
* headless (2.2.3)
* i18n (0.7.0)
* json (1.8.3)
* mime-types (3.0)
* mime-types-data (3.2016.0221)
* mini_portile2 (2.0.0)
* minitest (5.8.4)
* multi_json (1.11.2)
* multi_test (0.1.2)
* mysql2 (0.4.3)
* nokogiri (1.6.7.2)
* page-object (1.1.1)
* page_navigation (0.9)
* rack (1.6.4)
* rack-test (0.6.3)
* rspec (3.4.0)
* rspec-core (3.4.4)
* rspec-expectations (3.4.0)
* rspec-mocks (3.4.1)
* rspec-support (3.4.1)
* rubyzip (1.2.0)
* selenium-webdriver (2.53.0)
* snapurl (0.0.3)
* syntax (1.2.0)
* thread_safe (0.3.5)
* tzinfo (1.2.2)
* watir-webdriver (0.9.1)
* websocket (1.2.2)
* xpath (2.0.0)
* yml_reader (0.7)
* zip-zip (0.3)
操作系统:openSuSE 13.1浏览器:Firefox 45.0
错误发生在每个循环内(1 到 2 分钟后),无论我是观看 Firefox 还是让它 headless 运行。
步骤代码(来自评论中的 pastebin 链接)
Then /^I should XY$/ do
today = Date.today
heute = today.to_s.sub(/(\w+)-(\w+)-(\w+)/, '\\3.\\2.\\1')
letzter_tag = Date.today.end_of_month
differenz = letzter_tag - today
ueber_naechster_monats_beginn = Date.today.at_beginning_of_month.next_month.next_month
deutscher_ueber_naechster_monats_beginn = ueber_naechster_monats_beginn.to_s.sub(/(\w+)-(\w+)-(\w+)/, '\\3.\\2.\\1')
puts 'Heute ist das Datum: '+today.to_s
puts 'Der letzte Tag des aktuellen Monats ist: '+letzter_tag.to_s
puts 'Bis zum letzten Tag des aktuellen Monats sind es noch: '+differenz.to_s+' Tage'
if differenz < 9 || differenz < 0
puts "Der Monatswechsel liegt an, das neue Datum für den Monatsbeginn ist: "+ueber_naechster_monats_beginn.to_s
else
puts "Kein Monatswechsel liegt an."
end
tabellen_zeilen = @browser.table(:id => 'tabellenanfang').tbody.rows
puts tabellen_zeilen.count.to_s+' Tabellenzeilen gefunden'
link_list_2_mit_monats_wechsel = Array.new
link_list_2_ohne_monats_wechsel = Array.new
link_list_2 = Array.new
link_list_1 = Array.new
tabellen_zeilen.each do |tabellen_zeile|
if !tabellen_zeile.cell(:index => 2).div.text.include?("nicht veröffentlicht")
link_list_2 << tabellen_zeile.cell(:index => 0).div.a.text
puts 'veröffentlicht: '+tabellen_zeile.cell(:index => 0).div.a.text
beginn_datum = Date.parse(tabellen_zeile.cell(:index => 3).div.text)
puts ' Beginn Datum ist: '+beginn_datum.to_s
aktuelle_differenz = beginn_datum - today
puts ' '
#
if aktuelle_differenz < 10 || aktuelle_differenz < 0
link_list_2_mit_monats_wechsel << tabellen_zeile.cell(:index => 0).div.a.text
puts " "
else
link_list_2_ohne_monats_wechsel << tabellen_zeile.cell(:index => 0).div.a.text
puts " "
end
else
link_list_1 << tabellen_zeile.cell(:index => 0).div.a.text
puts ' '
end
end
puts ' '
link_list_2.each { |link_text|
puts '____________________________________________________________________________________________'
puts ''
puts link_text
puts ''
puts '____________________________________________________________________________________________'
link = @browser.link(:text => link_text)
begin
link.click
rescue Watir::Exception::UnknownObjectException => i #catch the Exception
@browser.refresh
link.wait_until_present(600)
link.click
puts "Objekt konnte nicht geklickt werden: #{i}"
end
puts ' Link geöffnet'
begin
@browser.input(:id => 'tab1').wait_until_present(600)
@browser.input(:id => 'tab1').click
rescue Watir::Exception::UnknownObjectException, TimeoutError => j #catch the Exception
@browser.refresh
@browser.input(:id => 'tab1').wait_until_present(600)
@browser.input(:id => 'tab1').click
puts "Objekt konnte nicht geklickt werden: #{j}"
end
puts ' '
@browser.element(:id => 'begin_field').wait_until_present(600)
@browser.element(:id => 'begin_field').exists?.should == true
@browser.text_field(:id => 'begin_field').set heute
@browser.element(:id => 'speichern_unten').wait_until_present(100)
@browser.input(:id => 'speichern_unten').click
begin
@browser.input(:id => 'tab2').click
rescue Watir::Exception::UnknownObjectException => e #catch the Exception
@browser.refresh
@browser.input(:id => 'tab2').wait_until_present(100)
@browser.input(:id => 'tab2').click
puts "Objekt konnte nicht geklickt werden: #{e}"
end
puts ' '
begin
@browser.element(:id => 'begin_date').wait_until_present(100)
@browser.element(:id => 'begin_date').exists?.should == true
@browser.text_field(:id => 'begin_date').set heute
rescue Watir::Exception::UnknownObjectException, TimeoutError => l #catch the Exception
@browser.refresh
@browser.element(:id => 'begin_date').wait_until_present(100)
@browser.element(:id => 'begin_date').exists?.should == true
@browser.text_field(:id => 'begin_date').set heute
end
begin
@browser.element(:id => 'speichern_unten').wait_until_present(600)
@browser.input(:id => 'speichern_unten').click
rescue Watir::Exception::UnknownObjectException, TimeoutError => h #catch the Exception
puts "Objekt konnte nicht geklickt werden: #{h}"
@browser.refresh
@browser.element(:id => 'speichern_unten').wait_until_present(600)
@browser.input(:id => 'speichern_unten').click
end
begin
@browser.element(:id => 'tab1').wait_until_present(600)
@browser.input(:id => 'tab1').click
rescue Watir::Exception::UnknownObjectException, TimeoutError => g #catch the Exception
puts "Objekt konnte nicht geklickt werden: #{g}"
@browser.refresh
@browser.element(:id => 'tab1').wait_until_present(600)
@browser.input(:id => 'tab1').click
end
puts ' '
begin
@browser.element(:id => 'begin_field').wait_until_present(600)
rescue Watir::Wait::TimeoutError => k
puts "Objekt konnte nicht geklickt werden: #{k}"
@browser.refresh
@browser.element(:id => 'begin_field').wait_until_present(600)
end
@browser.element(:id => 'begin_field').exists?.should == true
@browser.element(:id => 'begin_field').html.include?(heute).should == true
@browser.element(:id => 'tab2').wait_until_present(600)
@browser.input(:id => 'tab2').click
begin
@browser.element(:id => 'begin_date').wait_until_present(100)
rescue Watir::Wait::TimeoutError => f
puts "Objekt konnte nicht geklickt werden: #{f}"
@browser.refresh
@browser.element(:id => 'begin_date').wait_until_present(100)
end
@browser.element(:id => 'begin_date').exists?.should == true
@browser.element(:id => 'begin_date').html.include?(heute).should == true
puts ' neuer Veröffentlichungszeitraum auf '+heute+' gesetzt'
@browser.link(:text => 'buttonText').click
puts '____________________________________________________________________________________________'
puts ''
}
puts ' '
puts "----------------------------------------------------------------------------------------------"
puts ' '
puts ' '
puts ' '
puts ' '
link_list_2_mit_monats_wechsel.each { |monats_wechsel_link_text|
puts '____________________________________________________________________________________________'
puts ''
puts monats_wechsel_link_text
puts ''
puts '____________________________________________________________________________________________'
link = @browser.link(:text => monats_wechsel_link_text)
link.click
puts ' Link geöffnet'
@browser.input(:id => 'tab3').click
puts ' Reiter 1 Stelleninfo geöffnet'
@browser.element(:id => 'dateField').wait_until_present(600)
@browser.element(:id => 'dateField').exists?.should == true
puts ' '
@browser.text_field(:id => 'dateField').set deutscher_ueber_naechster_monats_beginn
@browser.input(:id => 'speichern_unten').click
sleep 1
@browser.input(:id => 'tab1').click
sleep 1
@browser.input(:id => 'tab3').click
puts ' Reiter 1 Stelleninfo zur Kontrolle geöffnet'
sleep 1
@browser.element(:id => 'dateField').wait_until_present(600)
@browser.element(:id => 'dateField').exists?.should == true
@browser.element(:id => 'dateField').html.include?(deutscher_ueber_naechster_monats_beginn).should == true
puts ' '
@browser.link(:text => 'buttonText').click
puts '____________________________________________________________________________________________'
puts ' '
}
puts ' '
end
env.rb(来自评论中的 pastebin 链接)
#!/bin/env ruby
# encoding: utf-8
# -*- coding: utf-8 -*-
require 'rubygems'
require 'capybara'
# active_support wird fuer die Funktion end_of_month benoetigt
require 'active_support'
require 'active_support/core_ext'
require 'minitest'
require 'minitest/autorun'
require 'rspec/expectations'
require 'capybara/rspec'
require 'capybara/cucumber'
#require 'ruby_gntp'
require 'net/http'
#require 'escape_utils'
require 'watir-webdriver'
require 'page-object/page_factory'
World(PageObject::PageFactory)
require 'headless'
client = Selenium::WebDriver::Remote::Http::Default.new
client.timeout = 600 # seconds – default is 60
Capybara.run_server = true #Whether start server when testing
Capybara.default_selector = :css #default selector , you can change to :css
Capybara.default_max_wait_time = 180 #When we testing AJAX, we can set a default wait time
Capybara.ignore_hidden_elements = false #Ignore hidden elements when testing, make helpful when you hide or show elements using javascript
Before do
@headless = Headless.new()
@headless.start
$DEBUG = true
#profile = Selenium::WebDriver::Firefox::Profile.new
@browser = Watir::Browser.new :firefox, :http_client => client
#@browser = Watir::Browser.new
@browser.window.resize_to(2250, 1024)
end
After do
@headless.destroy
#@browser.close
end
我可以尝试什么?
最佳答案
我刚刚想通了。在您的 env.rb 中,您正在设置 capybara ,但您正在使用 watir 创建浏览器。这不好,因为 capybara 和 capybara 同时出现可能会产生冲突。关闭 capybara 。仅使用 watir。不要把' capybara '要求。这比我在评论中的建议好得多。但我仍然不是 100% 确定。请尝试一下。
关于ruby - 到达文件的 cucumber 末尾(EOFError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36388390/
我正在更改链接网址以添加 www.site.com/index.html?s=234&dc=65828 我通过此代码得到的是:site.com/&dc=65828 var target="&dc=65
我在编译过程中收到错误: src/smtp.c:208:1: warning: control reaches end of non-void function [-Wreturn-type] 这是相
这是我的 bootstrap/html 代码: Put email 位置正确,但我希望输入字段的大小延伸到 div 末尾。谁能帮帮我? 最佳答案 只需按百分比指定宽度,如下所示
我正在尝试获取一个像这样的 json 对象: filters = {"filters": myArray}; 并将其附加到 URL 的末尾,使用: this.router.navigate([`/de
这个问题已经有答案了: Remove hash from url (5 个回答) 已关闭 10 年前。 我有一个网站,stepaheadresidents.com ,并且井号 (#) 会自动添加到 u
我有这个代码 $('container a').appendTo('.container'); dzedzdqdqdqzdqdzqdzqdqzdqd Forgot password
为了练习更多 Python 知识,我尝试了 pythonchallenge.com 上的挑战 简而言之,作为第一步,此挑战要求从末尾带有数字的 url 加载 html 页面。该页面包含一行文本,其中有
我对 FS2 很陌生,需要一些有关设计的帮助。我正在尝试设计一个流,它将从底层的 InputStream 中提取 block ,直到结束。这是我尝试过的: import java.io.{File,
我对 FS2 很陌生,需要一些有关设计的帮助。我正在尝试设计一个流,它将从底层的 InputStream 中提取 block ,直到结束。这是我尝试过的: import java.io.{File,
我正在编写一个 ajax 应用程序,并且在 php 脚本中有一个函数: public function expire_user() { $r=array("return"=>'OK');
我正在使用一个QListView,它包装了一个非常简单的列表模型。我想尝试实现类似于某些网页中看到的“无限滚动”的东西。 目前,模型通过最多添加 100 个项目的方法更新(它们取自外部 Web API
运行 cucumber 测试给我以下错误 end of file reached (EOFError) /usr/lib64/ruby/2.0.0/net/protocol.rb:153:in
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我想知道版本命名的具体作用是什么? 喜欢 jquery.js?ver=1.4.4 我的意思是如果我使用像这样的 cdn jquery/1.4.4/jquery.min.js?ver=1.4.4但是另一
" data-fancybox-group="gallery" title="">" alt="" /> 在此代码中 echo $prod['item_image_url'];打印存储在我的表中的图像
我目前使用 Wordpress 作为博客平台,但我想更改为使用 Jekyll 来生成静态页面。在 WordPress 上,我的 URL 使用以下格式: /年/月/日/标题 但我想将其重定向到 /年/月
根据docs这应该是不可能的 Regular expressions cannot be anchored to the beginning or end of a token 尽管如此,它似乎对我有
有没有办法创建 dijit 并将其附加到 div 的末尾?假设我有以下代码: Add Person 我在网上找到了以下代码,但这替换了我的“attendants”div: var personCo
我有这段代码: //execute post (the result will be something like {"result":1,"error":"","id":"4da775
我需要一些函数方面的帮助。 我想编写一个插入链表的函数。但不仅仅是中间,如果必须插入前端或末尾,它也必须起作用。 结构: typedef struct ranklist { i
我是一名优秀的程序员,十分优秀!