Wählen und Aktivieren der richtigen Steuerelemente auf einer AJAX-gesteuerten Site

Also, ich versuche jedes Mal, wenn ich eine Sneaker-Seite von nike.com besuche (ohne den HTML-Link), meine Schuhgröße automatisch auszuwählen, in den Warenkorb zu legen und nach mir Ausschau zu halten.

Ich versuche derzeit, dieses Skript (siehe unten) zu verwenden, aber jedes Mal, wenn ich auf die Sneaker-Seite gehe, wird die gewünschte Schuhgröße nicht richtig hinzugefügt, sondern es wird direkt zur Kasse gegangen, ohne dass sich etwas in meinem Warenkorb befindet.

Mir wurde gesagt, dass ich den Code mit der tatsächlichen HTML-Seite abgleichen muss, aber ich weiß nicht, wie das geht. Bitte helfen Sie.

// ==UserScript==
// @name     _Nike auto-buy(!!!) script
// @include  http://*/*
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @require  https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant    GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a design change
    introduced in GM 1.0.   It restores the sandbox.
*/

var okayToClickAddtoCart = false;

//-- Assumes that size is a standard <option> tag or similar...
waitForKeyElements (".selectBox-label[value='10']", selectShoeSize);

function selectShoeSize (jNode) {
    jNode.prop ('selected', true);

    okayToClickAddtoCart = true;
}


waitForKeyElements (".add-to-cart.nike-button", clickAddToCart);

function clickAddToCart (jNode) {
    if ( ! okayToClickAddtoCart) {
        return true;    //-- Don't click yet.
    }

    var clickEvent  = document.createEvent ('MouseEvents');
    clickEvent.initEvent ('click', true, true);
    jNode[0].dispatchEvent (clickEvent);
}


waitForKeyElements (".checkout-button", clickCheckoutButton);

function clickCheckoutButton (jNode) {
    var clickEvent  = document.createEvent ('MouseEvents');
    clickEvent.initEvent ('click', true, true);
    jNode[0].dispatchEvent (clickEvent);
}


Link zur "Zielseite"
Snapshot des Ziel-HTML (falls die Zielseite von Nike entfernt oder geändert wird)

Antworten auf die Frage(1)

Ihre Antwort auf die Frage