多浏览器运行 一个浏览器多个副本运行js解决方案(用的Edge浏览器测试)

动作开发 · 5929 次浏览
涛涛涛 创建于 24天4小时前

1.需要创建多个快捷方式打开浏览器
复制Edge浏览器的快捷方式
粘贴并重命名
修改属性的目标为"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --user-data-dir=d:\user_data1
确定
如:
"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --user-data-dir=d:\user_data1
"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --user-data-dir=d:\user_data2
"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --user-data-dir=d:\user_data3

                       

2.需要打开的多个浏览器都安装Quicker的浏览器插件

3.通过获取窗口信息/查找窗口(查找顶层窗口) > 窗口操作(设置为前台窗口)控制激活窗口

(此方式如果通过窗口名称获取窗口句柄有概率激活失败,不稳定,最好是提前获取窗口句柄,通过窗口句柄激活窗口或者使用快捷键Alt+Tab切换激活窗口)

4.通过浏览器控制运行js(原理好像是那个网页窗口处于活动状态就那个网页运行js)

 

涛涛涛 最后更新于 2025/11/23

回复内容
CL 20天23小时前
#1

因为这个功能开发的比较久,我查代码确认了一下。

确实是根据前台进程判断的,找到对应的主进程后,再给对应的连接发送消息执行脚本。 如果没有找到(前台的edge没有安装扩展或者扩展没连接),就会发送给找到的第一个edge连接(这时候就可能在错误的连接里执行了)。

涛涛涛 回复 CL 20天11小时前 :

好的,这个是否可以根据浏览器窗口(窗口句柄或浏览器窗口的窗口id)作为参数,给对应的浏览器插件连接发送消息执行脚本,这样就可以准确的指定浏览器窗口执行脚本
如:改造或增加一个模块


现在根据前台进程判断的连接发送消息执行脚本,这样会在切换浏览器窗口连接时做其他事情时占用前台进程(如:发微信,wps整理数据)而中断运行脚本(报错或乱运行)

涛涛涛 最后更新于 20天11小时前
CL 回复 涛涛涛 20天2小时前 :

嗯,等试下看看

CL 回复 涛涛涛 18天13小时前 :

https://getquicker.net/Help/Versions 增加了传入进程id,试下看看。

涛涛涛 回复 CL 18天10小时前 :
测试发现:
在使用进程id切换Edge浏览器(或指定Edge浏览器窗口进程id)运行js脚本时,获取获得标签页信息,获取元素信息,更新元素信息,等待网页变化,运行后台命令,可以运行成功

在使用进程id切换Edge浏览器(或指定Edge浏览器窗口进程id)运行js脚本时,触发事件(操作超时未响应(msedge)报错),对标签页运行脚本(标签页id找不到报错),运行失败- --但在网页窗口处于激活状态时可以运行成功(准确的说是,在指定浏览器窗口进程ID后,窗口不是激活状态,就会报错)

另外又测试了一下,先使用Edge浏览器运行js脚本使用chrome浏览器连接运行js脚本时,触发事件,对标签页运行脚本,是可以运行成功(网页窗口不处于激活状态时是可以运行成功的)




涛涛涛 最后更新于 18天2小时前
CL 回复 涛涛涛 18天0小时前 :

好的,我再试试

CL 回复 涛涛涛 16天14小时前 :

发了一版,有空再试下看看。

涛涛涛 回复 CL 16天11小时前 :
已测试,目前没有发现问题,之前的问题都解决了,没有报错
回复主贴