簡體   English   中英

Selenium Webdriver submit()vs click()

[英]Selenium Webdriver submit() vs click()

假設我在一個表單中有一個input (看起來像一個按鈕並像按鈕一樣交互),它會生成一些數據(好吧,服務器根據表單參數生成數據,但是對於用戶來說,按鈕就是這樣:))基於表單中的參數。

當我使用click() ,整個過程掛起(它實際上凍結,沒有異常或錯誤)。

來自Selenium網站:

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

所以WebDriver有一個submit()方法。 在按鈕上使用click()submit()之間是否存在邏輯上的差異?

submit()函數可以讓生活更輕松。 您可以在表單標記內的任何元素上使用它來提交該表單。

您還可以搜索提交按鈕並使用click()

所以唯一的區別是click()必須在提交按鈕上完成, submit()可以在任何表單元素上完成。

由你決定。

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

click()和submit()之間存在差異。

submit()提交表單並執行“action”屬性給出的url。 如果您運行任何javascript-function或jquery-plugin來提交表單,例如通過ajax,submit()將忽略它。 使用click(),將執行javascript函數。

我是submit()忠實粉絲,但現在不再了。

在我測試的網頁中,輸入用戶名和密碼,然后單擊“登錄”。 當我調用usernametextbox.submit() ,密碼文本框被清除(變空)並且登錄失敗。

在打破了我的腦袋一段時間后,當我用loginbutton.click()替換usernametextbox.submit()時,它就像魔術一樣。

另外,如果我錯了,請更正我,但我相信提交將等待加載新頁面,而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,python 2.7.9,Selenium 2.53.5上測試。 這是並行運行,意味着在輸入ENTER鍵后返回,不等待頁面加載。

submit()方法可以用來點擊表單中的按鈕,Type屬性應該是“submit”。

click()方法用於單擊網頁中的按鈕。

如果我錯了,請糾正我。

.Click() - 僅像單擊鼠標一樣執行單擊操作。

.Submit() - 執行Enter操作,如鍵盤輸入事件。

例如。 考慮一個登錄頁面,其中包含用戶名和密碼以及提交按鈕。

如果我們想要登錄而不點擊登錄按鈕,請填寫密碼。 我們需要在密碼上使用.submit按鈕,其中.click()操作不起作用。[登錄到應用程序]

串列加速器升級工程。

driver.get("https:// anyURL"); 
driver.manage().window().maximize(); 
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS); 
driver.findElement(By.id("txtUserId")).sendKeys("abc@test.com"); 
WebElement text = driver.findElement(By.id("txtPassword")); text.sendKeys("password"); 
Thread.sleep(1000); 
text.click();   //This will not work - it will on perform click operation not submit operation
text.submit(); //This will perform submit operation has enter key 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM