我在Selenium中看到了一些与超时错误相关的帖子.这变得越来越难以忍受,因为它使我的测试包无法使用.我正在测试目前正在开发的网页.
我有一个大约300个测试场景的回归套件,它一直有效,直到firefox和selenium webdriver的最新更新.现在几乎所有其他测试我得到:
Net::ReadTimeout (Net::ReadTimeout) 错误.
这不可能是巧合.有谁知道什么可能导致突然的超时问题?我试过回到以前版本的webdriver和firefox.
我正在使用Cucumber和Ruby.通过Selenium-Webdriver在Chrome中运行测试时,我想将下载位置更改为测试文件夹而不是用户下载文件夹.
我当前的Chrome驱动程序设置如下:
Capybara.default_driver = :selenium
Capybara.register_driver :selenium do |app|
Capybara::Selenium::Driver.new(app, :browser => :chrome,
desired_capabilities: {
'chromeOptions' => {
'args' => %w{ window-size=1920,1080 }
}
}
)
end
Run Code Online (Sandbox Code Playgroud)
我需要在那里添加什么才能更改下载位置?
我正在尝试测试以下 html 片段:
<input type="text" value="Pool A" name="name" class="form-control form-control-1-2" required="" readonly="" style="background-color: rgb(222, 224, 226);">
Run Code Online (Sandbox Code Playgroud)
我可以看到该元素设置为只读。我更喜欢残疾人,但我们走了!
有没有办法可以使用 Capybara 将该输入字段断言为只读?
readonly: true我在一些文档中遇到过,所以我尝试了:
expect(page).to have_css('name', readonly: true)
但它并没有说这readonly不是一个有效的选择。
任何帮助,将不胜感激
我刚刚将 Capybara 更新到版本 3.13。
我注意到您可以使用 向断言添加一个选项normalize_ws: true。对于我现有的测试包,更新每个断言以使用它会非常耗时。
可以在你的cucumber项目的env.rb文件中设置默认调用吗?
我有一些特定的功能来测试日期.我遇到了绊脚石.我需要从今天开始向后循环14天以生成日期,但必须忽略周末.
例:
今天是星期一,回到1天会把我带到星期五.回去2天会把我带到星期四.我们总是落后两天.所以,当我在星期二降落时,需要去周五和周一到周四.我让它工作了一周,但接下来的7天又开始了同样的周期.
这是我到目前为止:
def date_calc_minus(number)
date = Date.today - number.to_i
day = date.strftime('%a %e %B %Y').split(' ')[0]
case
when day.include?('Sun')
puts day
calculated_date = date - 2
when day.include?('Sat')
puts day
calculated_date = date - 2
else
puts day
calculated_date = date - 2
if calculated_date.strftime('%a %e %B %Y').split(' ')[0].include?('Sun')
calculated_date = calculated_date - 2
elsif calculated_date.strftime('%a %e %B %Y').split(' ')[0].include?('Sat')
calculated_date = calculated_date - 2
end
end
calculated_date.strftime('%a %e %B %Y')
end
start = 1
stop = 14 …Run Code Online (Sandbox Code Playgroud) 我希望从我的Cucumber测试中获得报告输出.到目前为止,我可以提出以下内容:
cucumber features/feature_name.feature -f json -o C:/Reports
Run Code Online (Sandbox Code Playgroud)
这只会在测试结束时产生一个json报告,你无法像黄瓜一样发现它们.
我是否可以同时执行这两项操作,以便在cmd中看到绿色/红色步骤并在最后获取json报告?
谢谢
我是YAML的新手,我正在尝试编写一些语言翻译测试.我的想法是我有一个YAML文件,其中包含相同文本的英语和威尔士语版本.我想知道如何在YAML中的字符串中使用正则表达式?
例:
我有这个基本测试:
#Gherkin
And I expect to see payment confirmation for "Dave"
#Step Def
And /^I expect to see payment confirmation for "(.*?)"$/ do |user|
expect(page).to have_text "Payment successful for #{user} - Reference: 000000"
end
Run Code Online (Sandbox Code Playgroud)
YAML参赛作品:
"Payment successful for Dave reference: 000000"
- welsh: "Taliad llwyddiannus ar gyfer Dave Cyfeirnod: 000000"
Run Code Online (Sandbox Code Playgroud)
我可以在该YAML条目中参数化Dave,因为测试套件涵盖了数百个用户.
谢谢
我有一串整数,可以用逗号、连字符或两者分隔。例如
str = '3,7-17,21'
Run Code Online (Sandbox Code Playgroud)
我需要将这些数字减 1,同时又不丢失它们在该字符串中的位置。
当我拆分时,我会丢失逗号和连字符,因此它们的位置会发生变化。
有没有一种好的方法可以将我的字符串变成2,6-16,20?
我开始执行以下操作,但最终陷入了困境:
def reduce_hours(hours)
hours
.enum_for(:scan, /\d+/)
.map { Regexp.last_match(0) }
.map(&:to_i)
.map { |hour| hour - 1 }
.then { hours }
end
hours = '3,7-17,21'
Run Code Online (Sandbox Code Playgroud)
它只是返回原始字符串。当我调试时,它确实会单独匹配数字并将它们减 1。它只是不会将这些更改返回到原始字符串。我对这个片段很熟悉吗?
我正在将黄瓜和水豚一起使用。我注意到,在安装捆绑软件之后,突然之间,我的测试失败了,新的换行符作为文本的一部分出现在字符串中。
错误示例:
RSpec::Expectations::ExpectationNotMetError: expected to find text "Longview Road Clase Swansea SA6 7JL" in "Skip to main content\nGOV.UK\nDigital tachograph card\n......."
Run Code Online (Sandbox Code Playgroud)
过去,那些换行符不存在。我正在努力寻找导致此问题的宝石。
有没有一种方法可以停止此操作,而无需在我从网页提取的每个字符串中都做一个剥离?
一些gem版本:
水豚-2.18 Rspec期望-3.7.0黄瓜-2.4.0