我的公司当前使用google chrome扩展程序通过数据挖掘和自动分页从LinkedIn提取联系方式。除插件何时会随机停止外,这还行之有效,然后这要求我们手动打开扩展弹出窗口,然后依次选择“停止”和“启动”,以使插件再次运行。
我想编写一个脚本来检查扩展是否不活动,然后自动触发“停止”然后“启动”的选择。我可以提出有关如何执行此操作的任何建议。我当时正在考虑编写一个Python脚本,该脚本监视扩展名特定的javascript操作(我可以在“检查元素”控制台上看到这些操作)并触发插件背后的Javascript。
这是一张显示我正在从事的工作的图像。
答案 0 :(得分:1)
我已经设法解决了这个问题,感谢您的精彩回答。事实证明,有一种方法可以使按钮单击自动化(在控制台上使用$('。[[INSERT ELEMENT CLASS NAME HERE]')。click();)并使用针对chrome特定实例的硒pythonscript,我可以阅读活动日志并在需要时执行此操作– George c
答案 1 :(得分:0)
通常,您可以测试一段时间后是否不活动,这意味着在没有用户操作五分钟后,您可以执行脚本。您可以发送一些代码来帮助解释吗?
这是一个基本的jQuery脚本,可检测鼠标移动和按键事件
<script type="text/javascript">
var idleTime = 0;
$(document).ready(function () {
//Increment the idle time counter every minute.
var idleInterval = setInterval(timerIncrement, 60000); // 1 minute
//Zero the idle timer on mouse movement.
$(this).mousemove(function (e) {
idleTime = 0;
});
$(this).keypress(function (e) {
idleTime = 0;
});
});
function timerIncrement() {
idleTime = idleTime + 1;
if (idleTime > 19) { // 20 minutes
window.location.reload();
}
}
</script>
不使用jQuery,仅使用普通JavaScript:
var inactivityTime = function () {
var time;
window.onload = resetTimer;
// DOM Events
document.onmousemove = resetTimer;
document.onkeypress = resetTimer;
function logout() {
alert("You are now logged out.")
//location.href = 'logout.html'
}
function resetTimer() {
clearTimeout(time);
time = setTimeout(logout, 3000)
// 1000 milliseconds = 1 second
}
};
并在需要的地方初始化函数(例如:onPageLoad)。
window.onload = function() {
inactivityTime();
}
如果需要,您可以添加更多DOM事件。最常用的是:
document.onload = resetTimer;
document.onmousemove = resetTimer;
document.onmousedown = resetTimer; // touchscreen presses
document.ontouchstart = resetTimer;
document.onclick = resetTimer; // touchpad clicks
document.onscroll = resetTimer; // scrolling with arrow keys
document.onkeypress = resetTimer;
或使用数组注册所需的事件
window.addEventListener('load', resetTimer, true);
var events = ['mousedown', 'mousemove', 'keypress', 'scroll', 'touchstart'];
events.forEach(function(name) {
document.addEventListener(name, resetTimer, true);
});
DOM事件列表:http://www.w3schools.com/jsref/dom_obj_event.asp
请记住根据您的需要使用window
或document
。在这里,您可以看到它们之间的区别:What is the difference between window, screen, and document in Javascript?