假设我在一个表单中有一个input
(看起来像一个按钮,交互方式也像一个按钮),它根据表单中的参数生成一些数据(好吧,服务器根据表单参数生成数据,但对于用户来说,按钮会这样做:)。
当我使用click()
时,整个进程挂起(它实际上冻结了,没有异常或错误)。
Selenium网站:
// Now submit the form. WebDriver will find the form for us from the element
element.submit();
字符串
所以WebDriver有一个submit()
方法。在逻辑上,在按钮上使用click()
或submit()
之间有什么区别吗?
8条答案
按热度按时间xpszyzbs1#
submit()
函数的作用是使工作更简单。你可以在表单标签中的任何元素上使用它来提交表单。您也可以搜索提交按钮并使用
click()
。所以唯一的区别是
click()
必须在提交按钮上完成,而submit()
可以在任何表单元素上完成。你决定吧
http://docs.seleniumhq.org/docs/03_webdriver.jsp#user-input-filling-in-forms
o75abkj42#
在
click()
和submit()
之间存在差异。submit()
提交表单并执行由“action”属性指定的URL。如果您有任何javascript函数或jquery插件正在运行以提交表单(例如通过ajax),submit()
将忽略它。使用click()
将执行javascript函数。lbsnaicq3#
我曾经是
submit()
的粉丝,但现在不再是了。在我测试的网页中,我输入用户名和密码,然后单击Login。当我调用
usernametextbox.submit()
时,密码文本框被清除(变为空),登录一直失败。在打破了我的头一段时间后,当我用
loginbutton.click()
替换usernametextbox.submit()
时,它像魔术一样工作。w8f9ii694#
另外,如果我错了请纠正我,但我相信提交将等待新页面加载,而单击将立即继续执行代码
kg7wmglp5#
submit()
和click()
都不够好。但是,如果您按ENTER键,它可以正常工作:字符串
在Mac 10.11,python 2.7.9,Selenium 2.53.5上测试。这是并行运行的,这意味着输入ENTER键后返回,不等待页面加载。
pcww981p6#
submit()
方法可用于单击表单中的按钮,Type属性应为“submit”。click()
方法用于点击网页中的按钮。如果我错了请纠正我。
l2osamch7#
click()
-仅执行单击操作,就像鼠标单击一样。submit()
-像键盘输入事件一样执行输入操作。例如,考虑一个登录页面,其中包含用户名、密码和提交按钮。
在填写密码,如果我们想登录,而不点击登录按钮。我们需要用户提交按钮的密码,其中
click()
操作不起作用(登录到应用程序)。字符串
w8biq8rn8#
element.click()方法适用于所有类型的
而submit()-submit()方法的目标必须是页面的HTML标记中的元素或其任何子元素。使用此方法,您不需要显式地将表单的提交按钮作为目标-您只需提交表单
它也可以处理button/link,但是异常会抛出“java.lang. UnloadedOperationException”
验证和参考链接-https://makersaid.com/submit-vs-click-selenium/
示例-x1c 0d1x
这里我没有捕获“登录”按钮元素,我只是使用了最后一个元素,这是密码,然后使用提交,它作为输入没有任何错误。
的