如何使用javascript执行按钮单击操作
我试图通过javascript在chrome控制台中执行flipkart中的如何使用javascript执行按钮单击操作,javascript,dom-events,Javascript,Dom Events,我试图通过javascript在chrome控制台中执行flipkart中的Buy now按钮的点击操作。使用下面的代码 function timeout_trigger() { var buynowButton = document.getElementsByClassName("_2AkmmA _2Npkh4 _2kuvG8 _7UHT_c")[0]; console.log(buynowButton) buynowButton.click(); } setTimeout('t
Buy now
按钮的点击操作。使用下面的代码
function timeout_trigger() {
var buynowButton = document.getElementsByClassName("_2AkmmA _2Npkh4 _2kuvG8 _7UHT_c")[0];
console.log(buynowButton)
buynowButton.click();
}
setTimeout('timeout_trigger()', 2000);
我可以在控制台日志中看到我使用
console.log(buynowButton)
但是,当buynowButton上的click方法不适用于flipkart页面时
buynowButton.click();
不要将
超时\u触发器作为字符串调用,而是将其作为引用传递。
尝试:
已编辑您只需将函数引用放入setTimeout的第一个参数中即可
var timeout_trigger = function(){
var buynowButton = document.getElementsByClassName("_2AkmmA _2Npkh4 _2kuvG8 _7UHT_c")[0];
console.log(buynowButton)
buynowButton.click();
}
setTimeout(timeout_trigger, 2000);
你可以这样使用它
document.getElementById(“btn”).addEventListener(“单击”,函数(){
console.log('Clicked');
})
var clickBtn=函数(){
var buynowButton=document.getElementById('btn');
Buynow按钮。单击();
}
setTimeout(函数(){
点击btn();
},1000)
单击
在jQuery中触发按钮很容易
$("#id").trigger('click');
或者干脆
$("#id").click();
另外,不要将超时函数作为字符串调用
setTimeout(timeout_trigger(), 2000);
Flipkart不要对其按钮使用click()
事件!
它使用Ruby的onClick
和某种复杂的系统来防止自动点击他们的网站。
他们使用名为handleClick
的函数,将该函数赋予按钮,就好像它被命名为onClick
,但实际上被称为o()
。他们使用特殊的事件来处理它。这就是为什么你不能使用。click()
,他们通过设置btn.click=()=>{}
来阻止它。他们还使用了非常复杂的系统来防止自动点击,所以基本上你只需要想办法绕过它。我需要用java脚本编程购买产品,准确地说,你可以使用buynowButton.onclick({target:buynowButton})代码>请定义“不工作”。当点击发生时,您期望发生什么?那么会发生什么呢?buynowButton
上的点击方式是什么样子的?我去Flipkart查看您为什么可能不工作。我更新了我的更像:setTimeout(timeout\u trigger,2000)
或setTimeout(()=>timeout\u trigger(),2000)
我尝试使用建议的代码,我能够看到日志值,这意味着调用了timout\u trigger函数,但BuyNow按钮。click()没有将产品添加到cart@rocky那么问题就出在别处了,提供的代码按原样工作。同意。但在flipkart网站上预订FlashSale功能不起作用。使用函数声明的函数
关键字也可以用作变量setTimeout(timeout\u trigger,2000)
在声明函数timeout\u trigger时也是有效的Why jquery?OP正在使用本机DOM API。我没有看到jQuerytag@DennisLukas删除jQuery
setTimeout(timeout_trigger(), 2000);