我正在使用watir headless在我的网站上运行基本登录测试用例。它适用于我的机器(普通开发Linux机器),但在无头linux服务器上使用firefox失败并出现以下错误:
脚本:
感谢您的回复。我尝试使用when_present,它永远不会返回true和脚本超时。这个脚本在使用ui的linux dev机器上工作正常但在linux服务器上的'browser.text_field(:name,“memberForm.memberpassword”)。set(“password”)'失败。
以下是剧本:
require 'rubygems'
require 'watir'
require 'watir-webdriver'
require 'headless'
headless = Headless.new
headless.start
begin
browser = Watir::Browser.start 'http://127.0.0.1:8080/login'
browser.text_field(:name, "memberForm.memberemail").set("tester")
puts browser.text_field(:name, "memberForm.memberpassword")
browser.text_field(:name, "memberForm.memberpassword").set("password")
browser.button(:id, "login-button").click
puts browser.text
if(resultText.include?'Error Message')
puts 'login failed'
else
puts 'success'
end
rescue => e
puts e.message
p e.backtrace
ensure
browser.close
headless.destroy
end
错误是:
[remote server] file:///tmp/webdriver-profile20121231-18379-1ad5l77/extensions/fxdriver@googlecode.com/components/command_processor.js:6771:in `unknown': Element is not currently visible and so may not be interacted with (Selenium::WebDriver::Error::ElementNotVisibleError)
HTML是:
<div class="row">
<fieldset id="login-form-fieldset">
<div class="clearfix">
<input class="span5"
id="memberForm_memberemail_id"
name="memberForm.memberemail"
type="text"
value="<gs:property value="memberForm.memberemail" escape="false"/>"/>
</div>
<div class="clearfix">
<input class="span5"
id="memberForm_memberpassword_id"
name="memberForm.memberpassword"
type="password"
placeholder="Password" />
</div>
<gs:token />
<div class="clearfix">
<button type="submit" id="login-button" class="btn btn-large btn-primary">Login</button>
<div class="pull-right" style="margin-top: 10px;">
Forgot Password? <a href="<gs:url action="forgot-password" namespace="/" />">Click here</a>
</div>
</div>
</fieldset>
</div>
我不明白无头linux服务器出了什么问题?如果我不尝试将值设置为密码字段,它可以正常工作并转到忘记密码页面。
答案 0 :(得分:1)
错误消息显示Element is not currently visible and so may not be interacted with
。这听起来像脚本有问题,而不是机器。当脚本尝试与其交互时,该元素不可见。
有关于如何等待元素的文档:http://watirwebdriver.com/waiting/
如果您提供相关代码,有人可能会了解更多。