Skip to content

Instantly share code, notes, and snippets.

@AJolly
Last active January 1, 2026 18:29
Show Gist options
  • Select an option

  • Save AJolly/ff02d798f001057fb3de8b27096a84a5 to your computer and use it in GitHub Desktop.

Select an option

Save AJolly/ff02d798f001057fb3de8b27096a84a5 to your computer and use it in GitHub Desktop.
Amazon Bypass Need anything else? Checkout UserScript
// ==UserScript==
// @name Amazon Auto Checkout and No Thanks
// @version 0.4
// @description Automatically clicks the "Continue to checkout" button on Amazon cart pages and "No Thanks" on product pages
// @match https://www.amazon.com/cart/byc/ref=ox_sc_byg_proceed*
// @match https://www.amazon.com/gp/product/*
// @match https://www.amazon.com/dp/*
// @match https://www.amazon.com/*/dp/*
// @match https://www.amazon.com/cart/smart-wagon*
// @namespace https://gist.github.com/AJolly
// @author AJolly
// @license MIT
// @downloadURL https://gist.github.com/AJolly/ff02d798f001057fb3de8b27096a84a5/raw/?cache-bust=112
// @updateURL https://gist.github.com/AJolly/ff02d798f001057fb3de8b27096a84a5/raw/?cache-bust=112
// ==/UserScript==
(function() {
'use strict';
// Function to click the "Continue to checkout" button
function clickCheckoutButton() {
const checkoutButton = document.querySelector('a[name="sc-byc-ptc-button"]');
if (checkoutButton) {
checkoutButton.click();
console.log('Auto-clicked the "Continue to checkout" button');
} else {
console.log('Checkout button not found');
}
const chartButton = document.querySelector('a[href^="/cart"]');
if (chartButton) {
chartButton.click();
console.log('Auto-clicked the "Continue to checkout" button');
}
}
// Function to click the "No Thanks" button on product pages
//Check will this work on <span class="a-button-inner"><input class="a-button-input" type="submit" aria-labelledby="attachSiNoCoverage-announce"><span id="attachSiNoCoverage-announce" class="a-button-text" aria-hidden="true"> No Thanks </span></span>?
function clickNoThanksButton() {
const noThanksButton = document.querySelector('#attachSiNoCoverage');
if (noThanksButton) {
noThanksButton.click();
console.log('Auto-clicked the "No Thanks" button');
} else {
console.log('No Thanks button not found');
}
}
console.log('AMZ Proceed and No Thanks Script Loaded');
// Determine which function to run based on the current URL
if (window.location.href.includes('/cart/')) {
// Run the checkout function when the page is fully loaded
window.addEventListener('load', clickCheckoutButton);
// Also run the checkout function immediately in case the page is already loaded
clickCheckoutButton();
} else /** if (window.location.href.includes('/gp/product/')) */{
// Run the No Thanks function when the page is fully loaded
window.addEventListener('load', clickNoThanksButton);
// Also run the No Thanks function immediately in case the page is already loaded
clickNoThanksButton();
}
/**
* This script waits for a specific element to appear on the page and then clicks it.
* It uses MutationObserver for efficiency.
*/
// --- Configuration ---
// IMPORTANT: Replace this with the CSS selector for your "No Thanks" button.
const noThanksbuttonSelector = '#attachSiNoCoverage';
// -------------------
const targetNode = document.body;
const config = { childList: true, subtree: true };
// The function that will be called when the DOM changes
const callback = (mutationsList, observer) => {
const noThanksButton = document.querySelector(noThanksbuttonSelector);
if (noThanksButton) {
console.log(`Found button with selector "${noThanksbuttonSelector}". Clicking it.`);
noThanksButton.click();
// Once we've found and clicked the button, we don't need to watch anymore.
//observer.disconnect();
//console.log('Observer disconnected.');
}
};
// Create an observer instance and start observing
const observer = new MutationObserver(callback);
observer.observe(targetNode, config);
console.log(`Observer started. Waiting for button with selector: ""`);
})();
@LooseHead-1
Copy link

The script was working great until very recently. Now, the "need anything else" page is present again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment