Selenium Webdriver submit () vs click ()

Disons que j’ai une input dans un formulaire (qui ressemble à un bouton et interagit comme un bouton) qui génère des données (bon, le serveur génère les données en fonction des parameters du formulaire, mais pour l’utilisateur, le bouton le fait :)) basé sur les parameters du formulaire.

Lorsque j’utilise click() , tout le processus se bloque (il gèle, pas d’exceptions ni d’erreurs).

Du site web Selenium:

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

Donc, WebDriver a une méthode submit() . Y a-t-il une différence, du sharepoint vue de la logique, entre l’utilisation d’un click() sur un bouton ou l’ submit() ?

La fonction submit() est là pour faciliter la vie. Vous pouvez l’utiliser sur n’importe quel élément à l’intérieur des balises de formulaire pour soumettre ce formulaire.

Vous pouvez également rechercher le bouton d’envoi et utiliser click() .

La seule différence est que click() doit être fait sur le bouton de submit() et que submit() peut être fait sur n’importe quel élément de formulaire.

C’est à vous.

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

Il y a une différence entre click () et submit ().

submit () soumet le formulaire et exécute l’URL fournie par l’atsortingbut “action”. Si vous avez une fonction javascript ou un plug-in jquery pour soumettre le formulaire, par exemple via ajax, submit () l’ignorera. Avec click (), les fonctions javascript seront exécutées.

J’étais un grand fan de submit() mais plus maintenant.

Dans la page Web que je teste, je saisis le nom d’utilisateur et le mot de passe, puis cliquez sur Connexion. Lorsque j’ai appelé usernametextbox.submit() , la zone de texte du mot de passe est effacée (devient vide) et la connexion échoue.

Après avoir cassé la tête pendant un loginbutton.click() temps, lorsque j’ai remplacé usernametextbox.submit() et remplacé par loginbutton.click() , cela a fonctionné comme une magie.

De plus, corrigez-moi si je me trompe, mais je pense que submit attendra le chargement d’une nouvelle page, alors que click continuera immédiatement à exécuter le code

Ni submit() ni click() ne suffisent. Cependant, cela fonctionne bien si vous le suivez avec une touche ENTREE:

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

Testé sur Mac 10.11, python 2.7.9, Selenium 2.53.5. Cela s’exécute en parallèle, ce qui signifie qu’il revient après avoir entré la touche ENTREE, n’attend pas le chargement de la page.

submit() méthode submit() peut être utilisée pour cliquer sur le bouton présent dans le formulaire et l’atsortingbut Type doit être “submit”.

click() méthode click() permet de cliquer sur le bouton de la page Web.

Corrigez-moi si je me trompe.

.Cliquez sur () – Effectuez uniquement une opération de clic comme un clic de souris.

.Submit () – Effectue une opération de saisie comme un clavier. Entrez un événement.

Par exemple. Considérez une page de connexion où il contient le nom d’utilisateur et le mot de passe et le bouton de soumission.

En remplissant le mot de passe si nous voulons nous connecter sans cliquer sur le bouton de connexion. nous devons utiliser le bouton .submit sur le mot de passe où l’opération .click () ne fonctionne pas. [pour vous connecter à l’application]

Brif.

 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