Подтвердить что ты не робот

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()?

4b9b3361

Ответ 1

Функция submit() позволяет сделать жизнь проще. Вы можете использовать его на любом элементе внутри тегов формы, чтобы отправить эту форму.

Вы также можете выполнить поиск кнопки отправки и использовать click().

Таким образом, единственная разница в click() должна выполняться в кнопке отправки, а submit() может выполняться в любом элементе формы.

Это вам.

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

Ответ 2

Существует разница между click() и submit().

submit() отправляет форму и выполняет URL-адрес, который задается атрибутом "действие". Если у вас есть javascript-функция или jQuery-плагин для отправки формы, например. через ajax, submit() будет игнорировать его. С помощью click() будут выполняться javascript-функции.

Ответ 3

Я был большим поклонником submit() но больше не был.

На тестируемой веб-странице введите имя пользователя и пароль и нажмите "Войти". Когда я вызываю usernametextbox.submit(), текстовое поле пароля очищается (становится пустым), и логин продолжает сбой.

Когда-то сломав голову, когда я заменил usernametextbox.submit() с помощью loginbutton.click(), он работал как волшебство.

Ответ 4

Кроме того, исправьте меня, если я ошибаюсь, но я считаю, что submit будет ждать загрузки новой страницы, тогда как клик будет продолжать выполнение кода

Ответ 5

Ни 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, не дожидаясь загрузки страницы.

Ответ 6

submit() метод можно использовать, чтобы щелкнуть по кнопке, присутствующей в форме, и атрибут Type должен быть "submit".

click() используется для нажатия на кнопку на веб-странице.

Исправьте меня, если я ошибаюсь.

Ответ 7

.Click() - Выполнять операцию щелчка только как щелчок мыши.

.Submit() - выполнить операцию ввода как клавиатуру. Введите событие.

Например. Рассмотрим страницу входа, в которой содержатся имя пользователя и пароль и кнопка отправки.

При заполнении пароля, если мы хотим войти в систему без нажатия кнопки входа в систему. нам нужна кнопка.submit пользователя на пароле, где операция.click() не работает. [для входа в приложение]

Бриф.

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