jQuery.forms.js使用click()而不是submit()(使用selenium)

时间:2009-12-15 18:00:57

标签: jquery html forms selenium

我的表单有一个由jquery.forms.js提供的ajax处理程序。

form.ajaxForm({
  dataType: 'json',
  clearForm: true,
  success: function (data)
  {
     form.replaceWith(data);
  }
});

我正在使用selenium(python RC接口)测试它,当我点击()按钮时它会起作用,但是当我提交表单时它不起作用:

    locbase = "dom=document.forms[0]"
    SEL.type(locbase + ".elements[0]", text)
    SEL.select(locbase+".elements[2]", "label=%s" % username)
    SEL.submit(locbase) # DOESNT WORK
    SEL.click(locbase+".elements[3]") # WORK!

通过“不起作用”,我的意思是表单提交,但不是通过AJAX。

我想这是表单的问题。如何(手动)告诉我的ajax既可以提交表单又可以点击按钮,我需要做些什么才能使它工作?

2 个答案:

答案 0 :(得分:2)

我使用FireQuery plugin for firefox来查看jQuery绑定到哪个元素。当页面上有一个用于表单提交的按钮时,我倾向于使用click()。非常罕见的是你会看到一个没有按钮的表单,如果没有,你总是可以调用keyKeys()。

从评论中编辑:

除了click或keyPress之外我不认为他们会提交的情况是因为通常提交被绑定到一个按钮,例如jQuery绑定到一个按钮或者有一个用于键盘交互的监听器。如果页面上没有绑定点,用户就无法提交()某些内容

答案 1 :(得分:0)

当你说“它不起作用”时你的意思是表格没有提交或提交但不是通过ajax吗?

简单测试怎么样

form=ajaxForm{(
 //options
});

form.submit();//does this work?