我正在开发一个使用WebSpec的简单应用。我正在使用mozilla()浏览器。 现在,有一个页面,我想在输入中注入一些文本,然后单击一个值为“提交”的按钮。页面正确加载,所有标签都存在且可以访问。 唯一的麻烦是,每次WebSpec尝试访问它时,“提交”按钮都不起作用。即使我单独点击它也无法使它工作。页面需要重新加载。
以下是表单的代码:
<form action="" method="post" name="theForm" id="theForm" onsubmit="get_search_results(); return false;">
<table cellpadding="0" cellspacing="10" style="text-align:left;margin:auto;" >
<tr>
<th valign="top">Enter Text: </th>
<td valign="top"><input type="text" name="theText" id="theText" class="box" value="" />
<br />
</td>
<td valign="top">
<select name="its-name" class="box" >
//some options
</select>
</td>
<td valign="top"><input type="button" value="Submit" class="button-of-color" onclick="get_the_results();" /></td>
<td valign="top"><a href="url" class="button-of-color">A Link</a></td>
</tr>
</table>
<div id="theResults"></div>
</form>
这是我用来执行所述操作的代码(XTend代码):
spec.open(theUrl)
val keywordBox = spec.find.input().with.name("theText")
val proceedBox = spec.find.input().with.type("button").with.value("Submit")
keywordBox.set.value(theText)
proceedBox.click
输入文本字段获取其值,但按钮(即使它被单击)将不会执行脚本。正如我所说,即使手动点击也没有任何效果。另一方面,我可以改变它的价值和其他属性。
我不知道为什么会发生这种情况,可能是罪魁祸首。而且,由于我使用Watin在.NET中编写的另一个应用程序运行良好,我确信它应该可行。
提前感谢您的帮助。 :)
编辑:只需将mozilla
转换为ie
似乎正在解决问题。我想这是一个应该由开发人员修复的bug。我会问他们。
我不喜欢这个,这就是我从.NET切换到Java的原因 - 我不需要移植应用程序。
与此同时,我仍在寻找解决方法......
答案 0 :(得分:1)
我和IE有同样的问题,&amp;添加了一个while循环来检查我设置的文本字段是否已完成,[不是修复,是的,一个肮脏的解决方法]
例如:
ie.textField(name, "email").set("xyz@gmail.com");
while (ie.textField(name, "email").value().isEmpty())
;
ie.button(name, "Login").click();
答案 1 :(得分:-1)
这一行可能有误......
$this->middleware('auth');
试试这个..
/