文档章节

VBS 自动登陆

宝贝女儿
 宝贝女儿
发布于 11/15 11:02
字数 666
阅读 7
收藏 0

1.关于网页元素属性
IE浏览器打开网页时,有很多元素,比如说一个文本框,一个按键等。每个元素都会有对应的“name”、“ID”,“style”,“class”等属性。
其中的“ID”和“name”属性是我们获取元素关键,理论上每个元素的
ID属性都是不同,经常发现会缺省,缺省时默认ID=name。
我们通过IE.document.getElementById(“”).value来获取并修改(传递)其属性。
查看到以上“登录”按钮ID=”tj_login” 一般通过查找button或者submit等关键字。
这时我们就可以通过IE.document.getElementById(“tj_login”).click来模拟点击该按钮。然后就进入登录页面。

继续查找登陆界面关于文本框的元素(账号和用户名)的ID通过
IE.documentgetElementByid(“TANGRAM__PSP_8__userName”).value=””  (账号)
IE.document.getElementByid(“TANGRAM__PSP_8__password”).value=””   (密码)
来分别修改(传递)文本框账户和密码:
 
如果运行的时候如果发现找不到对象(以上两行确实出现了这种情况)
1)IE.document.getElementByid中的“byid”有时候要求“i”和“b”要大写或者小写,否则报找不到对象错误。
2)使用ID不可靠,可以尝试用name属性
通过IE.documentgetElementByid(“userName”).value=””  (账号)
IE.document.getElementByid(“password”).value=””   (密码)
总之多试几个总会有的。

2.VBS脚本代码及分析:
Dim username,password,IE  ‘定义变量
username = "×××××"  ‘输入用户名
password = "×××××"  ‘输入密码
Set IE =CreateObject("InternetExplorer.Application")   ‘调用IE程序
ie.FullScreen=0            ‘全屏化IE对象
IE.Visible = True           ‘窗口可视化
IE.Navigate "http://www.baidu.com/"   ‘打开百度网站
Do while IE.ReadyState<> 4 or IE.busy   ‘用循环语句确保网页加载完毕才执行下面操作
wscript.sleep 2000                   ‘设置延迟2000ms
loop
IE.document.getelementByid("tj_login").click          ‘模拟第一次登陆按键的点击
IE.document.getelementByid("userName").value=username   ‘修改(传入)账户
IE.document.getelementByid("password").value=password   ‘修改(传入)密码
Do while IE.ReadyState<> 4 or IE.busy   ‘用循环语句确保网页加载完毕才执行下面操作
wscript.sleep 2000                   ‘设置延迟2000ms
loop
IE.document.getelementById("TANGRAM__PSP_8__submit").click  ‘模拟按第二次登陆键
3.保存代码
把以上代码复制粘贴到TXT文档,另存为*.vbs文件,记得在资源管理器中设置显示文件的后缀名。双击运行即可。
还可以添加到系统任务计划以实现每天自动打开某网页。不用每天早上都要重新手动登录。
 

© 著作权归作者所有

共有 人打赏支持
宝贝女儿
粉丝 1
博文 9
码字总数 6315
作品 2
哈尔滨
程序员
私信 提问
expect实现ssh自动登陆

对于每次登陆都要跑到密码机上获取密码,然后跑到跳板机上登陆到外网机器上,实在有些繁琐,但这为了安全着想,无可厚非;但为了方便,有人写了vbs通过SecureCRT接口登陆,在win下很方便,在...

jystruggle
06/28
0
0
你的CAD图纸被盗了吗?

  本次分析的样本是CAD脚本动态生产的一种VBS蠕虫病毒,大概10多年前就已经开始通过E-Mail传播此样,而如今这类病毒依旧活跃着,浮浮沉沉,生生不息。   蠕虫病毒简介:   蠕虫病毒是一...

FreeBuf
01/23
0
0
windows下nginx日志分割

在nginx根目录,创建cut-logs.bat 注:OpenEvent("Globalngxreopen5452") failed (5: Access is denied)根据这个提示我分析了一下,应该是权限问题,这时我分别用服务启动和命令启动nginx后发...

ling118
2017/12/07
0
0
Cacti 每日导出图形及流量报表 [未完成]

Cacti每日流量及图形导出以前做过一个VBS脚本,大概300多行,使用的是浏览器模拟打开Cacti网站用VBS模拟鼠标键盘操作进行自动导出及保存的。但是效率非常低,而且会因为浏览器升级及其他原因...

babyfenei
2015/01/09
0
0
使用django怎样获得到远程计算机的信息

我想使用django开发一个小的系统。是在公司的局域网内使用。 现在我想通过django获得到远程计算机的用户名,之前使用如下代码: 获得到的是服务器的登陆用户名,很郁闷。 现在谁有办法获得到...

---os
2013/01/28
386
2

没有更多内容

加载失败,请刷新页面

加载更多

区块链安全 - 以太坊短地址攻击

1 基础知识 EVM虚拟机在解析合约的字节码时,依赖的是ABI的定义,从而去识别各个字段位于字节码的什么地方。关于ABI,可以阅读这个文档: https://github.com/ethereum/wiki/wiki/Ethereum-C...

HiBlock
8分钟前
0
0
自定义函数及内部函数

变量的作用域 局部变量 global $Global及其他超全局数组 静态变量 仅初始化赋值 保留于内存直到response才销毁 global和static变量的区别 global:局部变量全局话 static:定义静态局部变量 函...

关元
9分钟前
0
0

中国龙-扬科
21分钟前
1
0
python包

https://www.lfd.uci.edu/~gohlke/pythonlibs/

陆朋
32分钟前
1
0
一文弄懂“分布式锁”,一直以来你的选择依据正确吗?

本文主要会关注的问题是“分布式锁”的问题。 多线程情况下对共享资源的操作需要加锁,避免数据被写乱,在分布式系统中,这个问题也是存在的,此时就需要一个分布式锁服务。 常见的分布式锁实...

Java干货分享
39分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部