2012-12-22 48 views
0

我正在使用一个使用WebSpec的简单应用程序。我正在使用mozilla()浏览器。 现在,有一个页面需要在输入中注入一些文本,然后单击一个值为“Submit”的按钮。该页面已正确加载,所有标签都存在并可以访问。 唯一的问题是,每当WebSpec尝试访问它时,“提交”按钮都不起作用。即使当我单击它时,我也无法使它工作。该页面需要重新加载。WebSpec(Watij)无法点击按钮

这里是形式的代码:

<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中编写的另一个应用程序完美工作,我相信它应该可以工作。

在此先感谢您的帮助。 :)

编辑:只是chaning mozillaie似乎是解决问题。我想这是一个应该由开发者修复的bug。我会问他们。 我不喜欢这个,这就是为什么我从.NET切换到Java - 我不必移植应用程序。

在此期间,我还在寻找一个解决办法...

回答

1

我曾与IE相同的问题,&添加一个while循环来检查,如果我设置的文本字段做,[不是修复,是的,一个肮脏的解决方法]

例:

ie.textField(name, "email").set("[email protected]"); 
    while (ie.textField(name, "email").value().isEmpty()) 
     ;  
    ie.button(name, "Login").click(); 
-1

此行可能是错的..

val proceedBox = spec.find.input().with.type("button").with.value("Submit") 

试试这个......

val proceedBox = spec.find.input().with.type("submit").with.value("Submit") 
+0

注 - 将按钮改为提交按钮。 – Denim

+0

当然,我只需启动我的时间机器并返回3,5年即可编辑此代码。只是FYI,接受的答案奏效了, – moskalak