Selenium Webdriver submit()vs click()

Cos*_*inO 52 java selenium internet-explorer submit selenium-webdriver

假设我有input一个表单(看起来像一个按钮并像按钮一样交互),它生成一些数据(好吧,服务器根据表单参数生成数据,但对于用户,按钮就是:) :)基于关于表格中的参数.

当我使用时click(),整个过程挂起(它实际上冻结,没有异常或错误).

来自Selenium网站:

// Now submit the form. WebDriver will find the form for us from the element
element.submit();
Run Code Online (Sandbox Code Playgroud)

所以WebDriver有一个submit()方法.在使用click()按钮或submit()?之间,逻辑上是否有任何区别?

小智 66

submit()功能是存在的,使生活更轻松.您可以在表单标记内的任何元素上使用它来提交该表单.

您还可以搜索提交按钮并使用click().

因此,唯一的区别是click()必须在提交按钮submit()上完成,并且可以在任何表单元素上完成.

由你决定.

http://docs.seleniumhq.org/docs/03_webdriver.jsp#user-input-filling-in-forms

  • 这在技术上并不正确 - 区别在于将触发input类型的input元素上的click事件,另一个将触发form元素上的submit事件.如果您的代码仅触发输入的click事件,则在使用submit函数时不会发生这种情况. (4认同)

小智 33

click()和submit()之间存在差异.

submit()提交表单并执行"action"属性给出的url.如果您运行任何javascript-function或jquery-plugin来提交表单,例如通过ajax,submit()将忽略它.使用click(),将执行javascript函数.


小智 12

我是一个很好的粉丝,submit()但现在不是了.

在我测试的网页中,输入用户名和密码,然后单击"登录".当我调用时usernametextbox.submit(),密码文本框被清除(变空)并且登录失败.

打破我的头了一段时间后,当我取代usernametextbox.submit()loginbutton.click(),它的工作就像一个魔法.


use*_*679 6

另外,如果我错了,请更正我,但我相信提交将等待加载新页面,而click会立即继续执行代码

  • 今天,我不得不用提交替换点击呼叫,因为点击不再等待页面加载,我确定点击工作正常.它必须是最近已经改变的东西,但我不能证明它.与硒一样,如果事情正在发挥作用,那并不意味着它们正确完成. (2认同)