javascript - 仅在 Jenkins 上运行 Cucumber 的 javascript 表单超时

标签 javascript continuous-integration jenkins cucumber watir-webdriver

我正在运行 Cucumber 1.2.1 和 Watir-webdriver 0.6.1 来测试网页。

本地所有测试运行正常,但尝试在 CI 机器 (Jenkins) 上启动它们时,我在填写 javascript 表单时超时。我有一个电子邮件和密码文本字段,但 Cucumber 无法填写它们。有几次,两分钟后,只有电子邮件文本字段已填满...

javascript 表单正确打开。这是打开它的链接:

`<a id="user_popup" class="textuser_popup" url="/en/bla/" href="javascript:void(0);" trackclick="click/unlogged/test/test/login" rel="nofollow"  gaclick="/en/bla/homepage/click:header-section>login">Sign in</a>`

加载表单后,电子邮件和密码的代码为:

<ul class="signin">
<li class="reg_form">
<label class="reg_form_label">Your email</label>
<input id="yourEmail" class="l_email" type="text" value="" name="email">
</li>
<li class="password_area">
<label class="reg_form_label">Your password</label>
<input id="yourPassword" class="l_password" type="password" name="password">
</li>
</ul>

我使用 PageObject 但直接在步骤上调用元素也不起作用。这就是我填写字段的方式:

@browser.text_field(:id, "yourEmail").set("email@domain.com")
@browser.text_field(:id, "yourPassword").set("thePass")

最后报错是:

execution expired (Timeout::Error)
/usr/lib/ruby/1.8/timeout.rb:64:in `rbuf_fill'
/usr/lib/ruby/1.8/net/protocol.rb:134:in `rbuf_fill'
/usr/lib/ruby/1.8/net/protocol.rb:116:in `readuntil'
/usr/lib/ruby/1.8/net/protocol.rb:126:in `readline'
/usr/lib/ruby/1.8/net/http.rb:2028:in `read_status_line'
/usr/lib/ruby/1.8/net/http.rb:2017:in `read_new'
/usr/lib/ruby/1.8/net/http.rb:1051:in `request'
/usr/lib/ruby/1.8/net/http.rb:1037:in `request'
/usr/lib/ruby/1.8/net/http.rb:543:in `start'
/usr/lib/ruby/1.8/net/http.rb:1035:in `request'

在本地启动测试时,它工作得非常好。不知道为什么在远程运行时失败。远程浏览器(通常在 headless 模式下运行,但我打开了一个 X11 session 来查看执行情况)是 Firefox ESR 10.0.8,操作系统是 CentOS。

请问您对正在发生的事情有什么建议吗?如果您需要有关该问题的更多信息,请询问。

欢迎任何建议:)

最佳答案

我遇到了同样的问题,我在我的 env.rb 文件中添加了以下代码行,现在它工作正常。

client = Selenium::WebDriver::Remote::Http::Default.new
client.timeout = 300 # seconds – default is 60
$browser = Watir::Browser.new :firefox, :http_client => client

关于javascript - 仅在 Jenkins 上运行 Cucumber 的 javascript 表单超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12952132/

相关文章:

javascript - 为什么 jquery 不会将结果放在带有背景颜色设置的 div 中

c++ - 为多个平台构建时如何使用 hudson

jenkins - 如何在 Jenkins 的控制台输出中隐藏 checkout scm 步骤输出

java - 如何使用 cPanel 安装 Jenkins?

jenkins - 如何将html文件的内容包括到jenkins email-ext的模板中?

javascript - 使用 jQuery 时的线条动画

javascript - Angular 传单图标不会相互替换,而是重叠

javascript - 在 html 标签中使用 javascript

continuous-integration - 如何通过 Concourse CI 管道发送电子邮件?

continuous-integration - 从哪里开始使用 CruiseControl.NET