0

我正在开发一个利用 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似乎正在解决问题。我想这是一个应该由开发人员修复的错误。我会问他们。我不喜欢的是,这就是我从 .NET 切换到 Java 的原因——我不必移植应用程序。

与此同时,我仍在寻找解决方法......

4

2 回答 2

1

我在 IE 上遇到了同样的问题,并添加了一个 while 循环来检查我设置的文本字段是否已完成,[不是修复,是的,一个肮脏的解决方法]

前任:

    ie.textField(name, "email").set("xyz@gmail.com");
    while (ie.textField(name, "email").value().isEmpty())
        ;       
    ie.button(name, "Login").click();
于 2013-02-13T08:35:27.897 回答
-1

这条线可能是错误的..

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

试试这个 ..

val proceedBox = spec.find.input().with.type("submit").with.value("Submit")
于 2016-04-09T06:48:09.783 回答