如何使用JavaScript执行按钮点击操作

时间:2019-03-14 10:11:06

标签: javascript dom-events

我正在尝试通过chrome控制台在javascript中通过flipkart对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方法不适用于该翻页卡纸页面

buynowButton.click();

5 个答案:

答案 0 :(得分:1)

不要将timeout_trigger作为字符串调用,而应将其作为引用传递。 尝试:

function timeout_trigger() {
  var buynowButton = document.getElementsByClassName("_2AkmmA _2Npkh4 _2kuvG8 _7UHT_c")[0];
  console.log(buynowButton)
  buynowButton.click();
}

setTimeout(timeout_trigger, 2000);

编辑

答案 1 :(得分:1)

您可以像这样使用它

document.getElementById("btn").addEventListener("click", function(){
  console.log('Clicked');
})

var clickBtn = function() {
  var buynowButton = document.getElementById('btn');
  buynowButton.click();
}

setTimeout(function(){
  clickBtn();
}, 1000)
<button id="btn">Click</button>

删除了jQuery并重新添加。

答案 2 :(得分:1)

Flipkart的按钮不使用click()事件! 它使用Ruby的onClick和某种复杂的系统来防止自动点击其站点。 他们使用名为handleClick的函数,将其赋予按钮,就像按钮被命名为onClick一样,但实际上称为o()。他们使用特殊的事件来处理它。这就是为什么您不能使用.click()的原因,他们通过设置btn.click = ()=>{}来阻止它。他们还使用了非常复杂的系统来防止自动点击,因此从根本上讲,您只需要弄清楚如何绕过该操作即可。

答案 3 :(得分:0)

您只需将函数引用放在setTimeout的第一个参数中。

var timeout_trigger = function(){
var buynowButton = document.getElementsByClassName("_2AkmmA _2Npkh4 _2kuvG8 _7UHT_c")[0];
console.log(buynowButton)
buynowButton.click();   
}
setTimeout(timeout_trigger, 2000);

答案 4 :(得分:-3)

在jQuery中触发按钮很容易。

$("#id").trigger('click');

或者简单地

$("#id").click();

此外,请勿将超时函数作为字符串调用。

setTimeout(timeout_trigger(), 2000);