He estado trabajando en la automatización de eventos de usuario para algunas tiendas, pero me quedé atascado en la página del carrito de https://shop.advanceautoparts.com/ . He estado tratando de activar cualquier evento posible en el campo de entrada, pero no hace lo mismo que el usuario ingresando datos manualmente. El evento de cambio se detecta en la entrada, pero ¿hay algún evento adicional que haga que el botón "Aplicar" sea utilizable?
He estado intentando con jQuery y Vanilla JS pero nada parece funcionar.
$(document).ready(function() { $('input[name="promoCode"]').blur(); $('input[name="promoCode"]').focus(); $('input[name="promoCode"]').attr('value','Example')[0].dispatchEvent(new Event('change', { bubbles: true })); $('input[name="promoCode"]').val('Example1')[0].dispatchEvent(new Event('change', { bubbles: true })); $('input[name="promoCode"]').blur(); setTimeout( function () { $('button[aria-label="Apply"]').removeAttr('disabled'); $('button[aria-label="Apply"]').get(0).dispatchEvent(new MouseEvent('click', { view: window, bubbles: true, cancelable: true })) }, 100); setTimeout( function () { $('button[aria-label="Apply"]').removeAttr('disabled'); $('button[aria-label="Apply"]').get(0).dispatchEvent(new MouseEvent('mousedown', { view: window, bubbles: true, cancelable: true })) }, 200); setTimeout( function () { $('button[aria-label="Apply"]').removeAttr('disabled'); $('button[aria-label="Apply"]').click(); }, 300); });El evento de clic no debería ser el problema, ya que cuando ingreso algo manualmente y disparo
$('button[aria-label="Apply"]').click();entonces todo se procesa normalmente. ¿Alguna idea?