Javascript jQuery:在DOM加载.on()和.click()后单击Chrome
我有一个UI页面要测试,那里有很大的自动化空间。例如,有些按钮可能一次或按顺序全部单击,并执行某些操作。因此,我尝试用JS和jQuery自动点击,从Firefox开始,转到chrome(使用greecemonkey和tempermonkey) 从这两种浏览器的转换并不像我最初想象的那么容易,因为似乎不起作用的是.click();方法(至少尝试从浏览器控制台中单击一些按钮) 从浏览器控制台(chrome)和firebug(firefox)运行时的简化版本:Javascript jQuery:在DOM加载.on()和.click()后单击Chrome,javascript,jquery,html,google-chrome,firefox,Javascript,Jquery,Html,Google Chrome,Firefox,我有一个UI页面要测试,那里有很大的自动化空间。例如,有些按钮可能一次或按顺序全部单击,并执行某些操作。因此,我尝试用JS和jQuery自动点击,从Firefox开始,转到chrome(使用greecemonkey和tempermonkey) 从这两种浏览器的转换并不像我最初想象的那么容易,因为似乎不起作用的是.click();方法(至少尝试从浏览器控制台中单击一些按钮) 从浏览器控制台(chrome)和firebug(firefox)运行时的简化版本: 在chrome上:只需打印出匹配元素的
- 在chrome上:只需打印出匹配元素的数组李>
- 在firefox上:实际点击链接李>
$(".div.tab-pane.active").find(".delete-link").text();
指示元素的目标正确
问题:
我是否需要将带有.on()方法的事件侦听器附加到我尝试单击的按钮上?当我尝试此代码时,它仍然不起作用:
function notify() {
$(".div.tab-pane.active").find(".delete-link").click();
alert( "clicked" );
}
$(".div.tab-pane.active").find(".delete-link").on( "click", notify );
或
- 为什么它与Firefox(firebug和greecemonkey)一起工作,而不与chrome一起工作?这两种浏览器有什么不同之处使得.click()的工作方式不同
- 如何让它工作
.get(index)
方法返回dom节点,并触发其上的事件绑定:
$(".div.tab-pane.active").find(".delete-link").get(0).click();
从文档中:
.get()方法授予对每个jQuery对象下面的DOM节点的访问权
我只想添加.get(index)
返回与jQuery对象匹配的DOM元素,因此在我们的例子中,选择器是”。删除链接“
,因此当我们在jQuery/js中绑定一个点击事件时,它只返回DOM元素,因此绑定DOM节点上的点击事件时,您需要使用它进行访问
所以我说:Chrome不允许间接打开绑定到dom节点的文件或事件。
。现实生活中不存在用户单击多个按钮的情况,这通常是不可能的。您可以在方法级别更好地封装这些函数。最后是一些有建设性的东西。它可以从控制台工作-但您是否可以添加一个简短的解释,说明它为什么工作?我觉得奇怪的是,它可以在FF上工作,但不能在chrome上工作。谢谢
$(".div.tab-pane.active").find(".delete-link").on("click", function(){
alert("clicked");
});
$(".div.tab-pane.active").find(".delete-link").click();
// causes a stack overflow
$(".div.tab-pane.active").find(".delete-link").get(0).click();