java selenium internet-explorer selenium-webdriver submit

java - xpath contains text



Selenium Webdriver submit() vs click() (7)

Digamos que tengo una input en un formulario (parece un botón e interactúa como un botón) que genera algunos datos (bueno, el servidor genera los datos en función de los parámetros del formulario, pero para el usuario, el botón lo hace :)) basado en los parámetros en la forma.

Cuando uso click() , todo el proceso se bloquea (en realidad se congela, sin excepciones ni errores).

Desde el sitio web de Selenium:

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

Entonces WebDriver tiene un método submit() . ¿Hay alguna diferencia, lógicamente sabia, entre usar un click() en un botón o submit() ?


.Click (): realice solo la operación de clic como con un clic del mouse.

.Submit (): realiza la operación Enter como teclado Ingresa evento.

Por ejemplo. Considere una página de inicio de sesión donde contiene nombre de usuario y contraseña y botón de enviar.

Al completar la contraseña, si queremos iniciar sesión sin hacer clic en el botón de inicio de sesión. necesitamos usar el botón .submit en la contraseña donde la operación .click () no funciona. [para iniciar sesión en la aplicación]

Brif.

driver.get("https:// anyURL"); driver.manage().window().maximize(); driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS); driver.findElement(By.id("txtUserId")).sendKeys("[email protected]"); 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


Además, corrígeme si me equivoco, pero creo que el envío esperará a que se cargue una nueva página, mientras que el clic continuará ejecutando el código inmediatamente.


Era un gran admirador de submit() pero ya no.

En la página web que pruebo, ingreso el nombre de usuario y la contraseña y hago clic en Iniciar sesión. Cuando invoqué usernametextbox.submit() , la contraseña del cuadro de texto se borra (se vuelve vacía) y el inicio de sesión sigue fallando.

Después de romperme la cabeza por algún tiempo, cuando reemplacé usernametextbox.submit() y lo reemplacé con loginbutton.click() , funcionó como una magia.


Hay una diferencia entre click () y submit ().

submit () envía el formulario y ejecuta la url que viene dada por el atributo "acción". Si tiene alguna función javascript o jquery-plugin en ejecución para enviar el formulario, por ejemplo, a través de ajax, submit () lo ignorará. Con click () se ejecutarán las funciones javascript.


La función submit() está ahí para facilitar la vida. Puede usarlo en cualquier elemento dentro de las etiquetas de formulario para enviar ese formulario.

También puede buscar el botón Enviar y usar click() .

Entonces, la única diferencia es que click() tiene que hacerse en el botón de submit() y submit() se puede hacer en cualquier elemento del formulario.

Tu decides.

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


Ni submit() ni click() son lo suficientemente buenos. Sin embargo, funciona bien si lo sigues con una tecla 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)

Probado en Mac 10.11, python 2.7.9, Selenium 2.53.5. Esto se ejecuta en paralelo, es decir, regresa después de ingresar la tecla ENTER, no espera a que se cargue la página.


submit() método submit() se puede usar para hacer clic en el botón presente en el formulario y el atributo Tipo debe ser "enviar".

click() método click() se usa para hacer clic en el botón en la página web.

Corrígeme si estoy equivocado.