어느 순간부터 아맥스 오퍼가 너무 많아져서 새로운 오퍼들이 보이지 않게 되는 사태가 일어났습니다.
제 경험상 available offer (아직 담지 않은) 가 100개 가 넘어가면 100개 까지만 보여주는 것 같았습니다.
그래서 한번에 모든 오퍼를 담는 chrome addon 을 썼었는데 언젠가부터 작동하지 않았구요.
검색을 해보니 비슷한 고민을 한 사람들이 있었는지 이런 글을 찾았습니다.
https://milestomemories.com/add-all-amex-offers/
간단히 요약 해보면,
1. 브라우저에서 F12 를 눌러서 나오는 자바스크립트 창에서 "console" 을 클릭한다.
2. 맨 밑에 있는 > 에 다음 코드를 copy & paste 한다.
var offerButtons = Array.from(document.getElementsByClassName("btn btn-sm btn-fluid offer-cta btn-secondary")).filter(btn => btn.title == "Add to Card");
var index;
for (index = 0; index < offerButtons.length; ++index) {
console.log("Clicking offer button");
offerButtons[index].click();
await new Promise(r => setTimeout(r, 2000));
}
3. 엔터 누른다.
이러면 2초에 한번씩 버튼을 자동으로 눌러줍니다.
어느정도 시간이 지나면 모든 offer 가 add 돼있더라구요. 더 간단한 방법 아시는 분 있다면 리플로 알려주세요. 감사합니다.
이런 꿀팁이...!
일단 스크랩부터 하구요. 팁 감사합니다
Chrome extension 전 사용않해봤는데
아직도 작동이 되나요?
https://www.milemoa.com/bbs/board/6987192
감사합니다 :) 매번 번거로웠는데 잘 적용했습니다!!
ㅎㅎ 그러고보니 아래 글 쓴지 딱 2년 됐네요
북마클릿으로 만들어놓으면 버튼 클릭 하나로 됩니다 https://www.milemoa.com/bbs/board/6896064#comment_6898087
북마클릿 만들기: 아래 한줄을 마우스로 긁어서 북마크바에 드랍하세요
javascript:var offers = document.querySelectorAll("button.offer-cta"); for (let i = 0; i < offers.length; i++) { setTimeout(function() { console.log(i + "/" + offers.length); offers[i].click(); }, i * 100); }
Firefox에서는 안되는데, 다들 Chrome쓰시는 거죠?
파폭에서 안 될 이유가 없는데, 어떤 부분에서 막히세요?
JS console에서 붙여넣고 실행하면 이런 저런 에러가 나오는데, 맨 마지막은 이겁니다.
혹시 맥 쓰시면 quotation 자동수정 때문일지도 모릅니다.
파이어폭스가 더 스트릭트 하네요.
기존 코드도 썩 좋은 코드는 아니지만 다른 거 웬만하면 안 건드리고
파폭에서도 실행 가능하게끔만 바꿔보자면...
const offerButtons = Array.from(document.getElementsByClassName("btn btn-sm btn-fluid offer-cta btn-secondary")).filter(btn => btn.title == "Add to Card");
(async () => {
for (let i = 0; i < offerButtons.length; i += 1) {
offerButtons[i].click();
await new Promise(r => setTimeout(r, 2000));
}
})();
넵. 잘 됩니다!!!
감사합니다. 너무 순식간에 다 애드되서 깜짝 놀랐습니다. 마치 마법을 보듯이.
감사합니다!!!
맥 사파리에서는 어떻게 하시나요??
사파리에서 아멕스 오퍼 전체보기 페이지 띄운 상태에서 ⌥⌘C 누르시면 콘솔창 뜹니다.
덕분에 시원하게 처리했습니다. 공유해주셔서 감사합니다-
오퍼를 add하는건 갯수 제한이 없나요?
add 하는것 자체에 제한은 없는데 왠지 모르게 "Added to Card"에는 웹사이트에선 150개, 앱에선 100개씩만 뜨네요ㅠㅠ
좋은 정보 감사합니다! 덕분에 손가락이 편안했어요..
button 이 'activate offer' 로 바껴서 위에 "Add to card" 를 "Activate Offer" 로 바꾸시면 됩니다.
어디서 보고 계신가요? 저는 여전히 "Add to Card"로 나옵니다.
var offerButtons = Array.from(document.getElementsByClassName("btn btn-sm btn-fluid offer-cta btn-secondary")).filter(btn => btn.title == "Activate Offer");
var index;
for (index = 0; index < offerButtons.length; ++index) {
console.log("Clicking offer button");
offerButtons[index].click();
await new Promise(r => setTimeout(r, 2000));
}
Activate Offer 로 바꾼것 올려봅니다
자 이제 이것을 아멕스 카드 여러개에 동시에 다 애드할 수만 있다면... 능력자 모십니다... ==333
아직도 재빠른 멀티탭 신공을 하면 되기는 되는데 열에 다섯번 정도 밖에 안 되더라고요. 그래도 되는 걸 보면 세션을 나눠서 동시에 스케줄하면 될 것 같기도 하고요...
혹시 이거 체이스 오퍼를 Add하려면 어떻게 해야하나요?
능력자 분들의 도움을 요청해봅니다.
며칠 사이 아멕스 웹사이트 코드에 소소한 업데이트가 있었습니다. 불필요한 부분 지우고, 코드 살짝 업데이트 합니다.
Array.from(document.getElementsByClassName('offer-cta'))
.filter((btn) => btn.title === 'Add to Card')
.reduce(async (promise, offer) => {
await promise;
offer.click();
await new Promise((r) => { setTimeout(r, 2000) });
}, Promise.resolve());
감사합니다. 작동 잘 되네요 +_+
최근에 안되던데 지금은 잘 작동하네요!! 감사합니다~
감사합니다!!! 작동 잘 되네요 ㅎㅎ 마모에 정말 능력자 많으셔서 항상 감동입니다!!ㅎㅎ
감사합니다. 위에 코드 넣으니 이런 에러메세지가 뜨는데 왜일까요? ㅜㅜ;
Uncaught SyntaxError: Identifier 'offerButtons' has already been declared
감사합니다! 신세계 체험중이에요~
시간을 2000에서 1500으로 줄여 돌리니 25% 빨라졌습니다. 스크립트 감사합니다.
그 시간이 클릭간 딜레이 시간이라 당연한 결과입니다 ㅋㅋ
감사합니다!
와.. 저 마우스 클릭을 혼자 하다 현타와서 찾았는데 업데이트까지 해 주시다니 정말 감사합니다. ㅠㅜ
오늘 다시해보니 이렇게 에러가 납니다. 혹시 먼가 바뀌었을까요? 아님 제 브라우저 문제일까요? (Chrome on M1 Macbook, 지난 번엔 잘 되었습니다.)
감사합니다 작동잘 됩니다!
작동 잘되네요. 감사합니다!
구세주이십니다.
이게 오랜만에 오늘 해보니 안되는데 저만 그런 건지 다른 분들도 그런 건지 궁금합니다 ㅠ
저는 사파리에서 북마크에 다음의 코드를 넣어두고 사용중입니다. 그냥 아멕스 웹사이트에서 북마크 바 클릭만 하면 바로 작동합니다.
수작업 좋아하시는 분들을 위한 팁(?)입니다. 저는 크롬에서 컴퓨터로 애드 하는데 한 번에 4개를 연달아 클릭하면 전부 애드가 됩니다. 손이 풀리면 5개까지 가능하더군요
저도 예전엔 이거 한번에 몇개까지 동시에 할 수 있는지 해보면서 혼자 즐겼었던 기억도 납니다 ㅎㅎㅎ 이젠 귀찮아서 그냥 저장된 자동화 코드 북마크 클릭해서 애드 하곤 하네요.
댓글 [60]