因为chrome console只能访问当前页的上下文(以及chrome扩展的上下文),无法访问其他标签页面的上下文,所以局限性较大,仅适用于一些较简单的操作

经实践,可以在chrome的一个标签页的console中执行javascript,对于window.open打开的新标签页的上下文进行操作,详见情况4

情况1:页面上有多个url链接,每个url的href中包含有 XXXX 字样,想要一次全部点开

参考代码:

var a = $$("a[href*='javaScript:openFullWindowHaveBarForWFList']")
a.forEach(function(w){w.click()})

情况2:这些链接中都包含6个数字,想要提取出来并组成新的URL后,全部点开

参考代码:

var a = $$("a[href*='javaScript:openFullWindowHaveBarForWFList']")
var id =[]
a.forEach(function(i){id.push(String(i).match(/[-]{}/)[])})
id.forEach(function(j){var nw = window.open();nw.location = "http://192.168.132.80/workflow/request/ManageRequestNoForm.jsp?fromFlowDoc=&requestid=" + j +"&isrequest=0&isovertime=0&isaffirmance=&reEdit=1&seeflowdoc=0&isworkflowdoc=0&isfromtab=false";})

这里用window.open打开了新窗口,如果能获取新窗口的上下文,就可以真正实现自动化了。可惜不行。只有用chrome扩展才行。

情况3:参考上一篇文章,打开新窗口用于循环访问URL,如果URL对应的zip或DOC等,则可以实现批量下载。

参考代码:

(function () {
var aa=$("a");
var arr=[];
for(var i=;i<aa.length;i++){
if(/owner=/.test(aa[i].href)){
arr.push(aa[i].href);
}
}
var nw = window.open();
var i = ;
function op() {
console.log(arr[i]);
nw.location = arr[i];
i++;
if (i<arr.length)
setTimeout(op, );
}
op();
})();

情况4:所谓的“真正实现自动化”;如:先在新标签页中打开baidu输入关键词“美女”,提交搜索;再打开sohu在搜索框中输入“野兽”

参考:https://www.cnblogs.com/laden666666/p/5544572.html    https://www.cnblogs.com/yanggl/p/10211930.html 修改 chrome浏览器的跨域设置

然而我在chrome 77 上设置后还是没办法获取另一个标签页的上下文。

最后只能退而求其次,不跨域(因为我们通常只针对某个网站内部进行自动化操作),所以我在情况4题目上加了“所谓的”三个字

这里将情况4的任务变更为:先在新标签页中打开baidu输入关键词“美女”,提交搜索;再打开baidu搜索框输入“野兽”

可以考虑延时函数

function sleep(delay) {
for(var t = Date.now(); Date.now() - t <= delay;);
}

代码如下(确保代码在badu.com的console中执行,即保持不跨域):

var nw = window.open();
nw.location ="https://baidu.com";
(pageok = function(){
if(nw.document.getElementById('kw') != null){
//做你想做的的事
nw.document.getElementById('kw').value ="美女"; }
else{
//500毫秒轮询一次
setTimeout(pageok , )
}
})();
(pageok1 = function(){
if(nw.document.getElementById('su') != null){
//做你想做的的事
nw.document.getElementById('su').click();
setTimeout(function(){nw.document.getElementById('kw').value ="野兽"},); }
else{
//500毫秒轮询一次
setTimeout(pageok1 , )
}
})();

用chrome console实现自动化操作网页的更多相关文章

  1. 通过chrome console 快速获取网页连接

    通过chrome console 快速获取网页连接 var ip = document.getElementsByClassName("jDesc"); var str = &qu ...

  2. splinter python浏览器自动化操作,模拟浏览器的行为

    Splinter可以非常棒的模拟浏览器的行为,Splinter提供了丰富的API,可以获取页面的信息判断当前的行为所产生的结果   最近在研究网站自动登录的问题,涉及到需要实现浏览器自动化操作,网上有 ...

  3. chrome console的使用 : 异常和错误的处理 – Break易站

    本文内容来自:chrome console的使用 : 异常和错误的处理 – Break易站 利用 Chrome DevTools 提供的工具,您可以修复引发异常的网页和在 JavaScript 中调试 ...

  4. 在chrome console添加jQuery支持

    有时候想在chrome console使用jq,那么下面这段代码就可以完美解决问题了. var script = document.createElement('script');script.src ...

  5. 使用Chrome console提取页面数据

    使用Chrome console提取页面数据 1.需求介绍 在做课题研究的过程中,遇到这样一个问题,有一个页面中包含很多IP地址,需要把这些IP地址提取出来保存到文件中.如下图所示: 一开始的做法是一 ...

  6. 利用chrome console批量下载文件

    因工作需要,需要定期从某页面下载多个文档,是体力活. 想用chrome扩展,找了几个不行.原因是: 1.有的扩展识别不了链接,因为链接是形如:jsp?XXX=XXX的形式 2.有的扩展能批量打开链接, ...

  7. Python实训day07pm【Selenium操作网页、爬取数据-下载歌曲】

    练习1-爬取歌曲列表 任务:通过两个案例,练习使用Selenium操作网页.爬取数据.使用无头模式,爬取网易云的内容. ''' 任务:通过两个案例,练习使用Selenium操作网页.爬取数据. 使用无 ...

  8. 利用扩展双屏技术及Chrome浏览器,高速剖析优秀网页Div及CSS构成,并高效实现原型创作

    作为一个Web前台设计人员,应该充分利用可利用的硬件条件及专业的软件工具,迅速进入到高效氛围其中.实践中,我们能够利用扩展桌面双屏技术及Chrome浏览器高速剖析优秀网页Div及CSS构成,并高速实现 ...

  9. chrome console 调试xpath

    chrome console F12->$x(“//title”) [<title>Online Tools for Software Developers (Free)</t ...

随机推荐

  1. 软件模拟IIC实现EEPROM

    ....妈的太难.    反正就是控制引脚的高低电平 实现数据的读取....参考 I2C的协议层和物理层的那个几个图,个个信号产生的电平 自己看源码去把. 头疼

  2. Typora 的使用

    一. Typora的markdown语法 1.标题 使用简单的ctr+数字健,就可以快速完成各种级别的标题 #一阶标题 或者快捷键Ctrl+1 ##二阶标题 或者快捷键Ctrl+2 ##二阶标题 或者 ...

  3. linux中的内核级防火墙(SELINUX)

    SElinux是基于内核开发出来的一种安全机制,被称之为内核级加强型防火墙,有力的提升了系统的安全性. SElinux的作用分为两方面:1.在服务上面加上标签: 2.在功能上面限制功能 在linux系 ...

  4. 官网实例详解-目录和实例简介-keras学习笔记四

    官网实例详解-目录和实例简介-keras学习笔记四 2018-06-11 10:36:18 wyx100 阅读数 4193更多 分类专栏: 人工智能 python 深度学习 keras   版权声明: ...

  5. MySQL 5.7 多源复制实践

    多源复制使用场景 数据分析部门会需要各个业务部门的部分数据做数据分析,这个时候就可以用到多源复制把各个主数据库的数据复制到统一的数据库中. 在从服务器进行数据汇总,如果我们的主服务器进行了分库分表的操 ...

  6. CCF 201709-1 打酱油

    CCF 2017-09-1 打酱油 题目 问题描述 小明带着N元钱去买酱油.酱油10块钱一瓶,商家进行促销,每买3瓶送1瓶,或者每买5瓶送2瓶.请问小明最多可以得到多少瓶酱油. 输入格式 输入的第一行 ...

  7. Html Agility Pack 使用 XPath 选择器

    想做一个爬虫程序,以前用的一直使用CSS选择器的html解析插件,最近做的项目想使用 Html Agility Pack 来做解析 Html Agility Pack使用 XPath 和 Linq 来 ...

  8. 在CentOS部署AspNetCore网站

    前段时间某云服务器大促,就买了一台打算折腾一下,买了几个月,却啥也没做,就改了个初始密码.最近快到双十一了,另一家厂商相同配置的服务器价格又便宜了一大截,看来又得剁手了.从今年开始,搜索一下云服务器, ...

  9. 如何禁止Chrome浏览器隐藏URL的WWW前缀

    如何禁止Chrome浏览器隐藏URL的WWW前缀 一.打开Chrome浏览器 二.在Chrome浏览器的地址栏中输入以下内容并回车: chrome://flags/#omnibox-ui-hide-s ...

  10. eclipse设置各种编码

    https://blog.csdn.net/qq_32786873/article/details/81910022