Memilih Kawalan yang Betul pada Tapak Dipacu AJAX
Menavigasi dan berinteraksi dengan tapak web dipacu AJAX boleh mencabar untuk skrip automatik. Berikut ialah panduan langkah demi langkah untuk mengautomasikan tapak web sedemikian dengan berkesan:
Contoh Khusus: Skrip Auto-Beli Nike
Matlamat: Memilih saiz kasut tertentu, menambahkannya pada troli, dan meneruskan pembayaran pada setiap Halaman kasut Nike.
Langkah:
Pengenalpastian Elemen Utama:
Jujukan Acara:
Skrip Lengkap:
// ==UserScript== // @name Nike Auto-Buy Shoes // @include http*://store.nike.com/* // @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== var targetShoeSize = "10"; //-- Step 1: Activate Size Dropdown waitForKeyElements( "div.footwear form.add-to-cart-form span.sizeDropdown a.size-dropdown", activateSizeDropdown ); function activateSizeDropdown(jNode) { triggerMouseEvent(jNode[0], "mousedown"); //-- Setup Step 2 waitForKeyElements( "ul.selectBox-dropdown-menu li a:contains('" + targetShoeSize + "'):visible", selectDesiredShoeSize ); } //-- Step 2: Select Target Shoe Size function selectDesiredShoeSize(jNode) { if ($.trim(jNode.text()) === targetShoeSize) { //-- Trigger triplex event triggerMouseEvent(jNode[0], "mouseover"); triggerMouseEvent(jNode[0], "mousedown"); triggerMouseEvent(jNode[0], "mouseup"); //-- Setup Steps 3 and 4 waitForKeyElements( "div.footwear form.add-to-cart-form span.sizeDropdown a.selectBox span.selectBox-label:contains('(" + targetShoeSize + ")')", waitForShoeSizeDisplayAndAddToCart ); } } //-- Steps 3 and 4: Wait for Shoe Size Display and Add to Cart function waitForShoeSizeDisplayAndAddToCart(jNode) { var addToCartButton = $( "div.footwear form.add-to-cart-form div.product-selections div.add-to-cart" ); triggerMouseEvent(addToCartButton[0], "click"); //-- Setup Step 5 waitForKeyElements( "div.mini-cart div.cart-item-data a.checkout-button:visible", clickTheCheckoutButton ); } //-- Step 5: Click the Checkout Button function clickTheCheckoutButton(jNode) { triggerMouseEvent(jNode[0], "click"); } function triggerMouseEvent(node, eventType) { var clickEvent = document.createEvent("MouseEvents"); clickEvent.initEvent(eventType, true, true); node.dispatchEvent(clickEvent); }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengautomasikan Interaksi Laman Web Didorong AJAX dengan Berkesan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!