Selenium Webdriver submit()vs click()

比方说,我有一个forms的input (看起来像一个button,并像一个button交互),它会生成一些数据(嗯,服务器生成基于表单参数的数据,但对于用户来说,button做:))基于表单中的参数。

当我使用click() ,整个过程挂起(它实际上冻结,没有例外或错误)。

来自Selenium网站:

 // Now submit the form. WebDriver will find the form for us from the element element.submit(); 

所以WebDriver有一个submit()方法。 在button或submit()上使用click()之间有什么区别,逻辑明智吗?

submit()函数在那里让生活更轻松。 您可以在表单标签中的任何元素上使用它来提交该表单。

您也可以search提交button并使用click()

所以唯一的区别是click()必须在submitbutton上完成,而submit()可以在任何表单元素上完成。

随你便。

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

click()和submit()是有区别的。

submit()提交表单并执行由“action”属性给出的url。 如果你有任何的javascript函数或jquery插件运行提交表单,例如通过ajax,submit()将忽略它。 点击()JavaScript函数将被执行。

另外,纠正我,如果我错了,但我相信提交将等待一个新的页面加载,而点击将立即继续执行代码

我是submit()一个伟大的粉丝,但现在不再。

在我testing的网页中,input用户名和密码,然后点击login。 当我调用usernametextbox.submit() ,密码文本框被清除(变为空)并且login保持失败。

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

submit()click()都不够好。 但是,如果您按下ENTER键,则工作正常:

 search_form = driver.find_element_by_id(elem_id) search_form.send_keys(search_string) search_form.click() from selenium.webdriver.common.keys import Keys search_form.send_keys(Keys.ENTER) 

在Mac 10.11上testing,python 2.7.9,Selenium 2.53.5。 这个并行运行,意味着在进入ENTER键后返回,不等待页面加载。

可以使用submit()方法点击表单中的button,Type属性应该是“submit”。

click()方法用于点击网页上的button。

纠正我,如果我错了。