Определите, какой элемент отправил форму из onsubmit

@ Комментарий Джеффа был почти идеальным, но с недостатком. Вы можете использовать следующее решение:

try:
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "li:not(.disabled)>a[data-page='next']"))).click()
    print("There is another page.")
except TimeoutException:
    print("No more pages")
    break
9
задан Chris Hynes 12 February 2009 в 16:31
поделиться

4 ответа

Это решение работает в Firefox. Я не проверил его в другие совместимые браузеры или IE.
Я не слишком выражаю надежду на IE, необходимо было бы изучить его и отправить результаты.

<form id="myForm">
    <input type="submit">
    <input type="submit">
</form>

_

document.getElementById('myForm').addEventListener( 'submit', function( e ){
    e.preventDefault();
    e.explicitOriginalTarget.style.background = 'red';
}, false );
0
ответ дан 5 December 2019 в 01:19
поделиться

Я не использовал бы стандарт, отправляют тип кнопки.

Сделайте отправлять функциональное взятие дополнительным аргументом, который представляет элемент, который отправил его, и кнопка будет иметь onclick, который отправляет this как параметр:

<input type="button" onclick="submitHandler(this)">
1
ответ дан 5 December 2019 в 01:19
поделиться

Альтернативное решение состояло бы в том, чтобы переместиться, триггер события от формы отправляют событие, к onclick событию отправлять элемента, как таковому:

<form name='form1'>  
    <input type="submit" name="submit1" onclick="onSubmitHandler"/>
    <input type="submit" name="submit2" onclick="onSubmitHandler"/>
</form>

В Вашей функции-обработчике можно определить отправляющий элемент просто путем осмотра имени цели события, и если Вам нужен доступ к информации формы или другим элементам, можно получить это от отправлять атрибута "формы" элементов.

3
ответ дан 5 December 2019 в 01:19
поделиться

Моя нейтрализация обходит DOM для нахождения всех кнопок, которые могли вызвать отправление, но я хотел бы избежать этого.

... и добавление слушателей щелчка их для хранения ‘последней нажатой’ кнопки, которая затем читается отправлять слушателем, правильно?

Я не могу думать ни о каком другом пути, извините.

0
ответ дан 5 December 2019 в 01:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: