ruby中的win32ole使用
ruby中的win32ole是一个标准库,使用的时候只要添加require 'win32ole'就行。
下面是一段模拟一个登陆的代码
require 'win32ole'
ie = WIN32OLE.new('internetExplorer.application')
ie.visible = true
ie.navigate('www.***.cn')
sleep(0.2) until ie.busy == false
ie.Document.getElementById('loginId').value = "*****"
ie.Document.getElementById('password').value = "*****"
#ie.Document.getElementsByTagName('input').each {|x| x.click if x.value == "登陆"}
ie.Document.getElementsByTagName('input').each {|x| x.click if x.name == "user_login"}
ie.quit
第一行:添加win32ole头。
第三行:打开一个ie浏览器
第五行:ie可见,如果不写或者false则表示隐藏窗口。
第六行:使用navigate跳转到一个网址。
第八行:等待页面加载完全。如果页面忙,则等待0.2s。
第九行到第十行:输入账号密码。这里用到的是HTML DOM树的相关知识。
十一行和十二行:模拟点击登录按钮。有三种方法可以访问html元素,getElementById,getElementsByTagName,getElementsByClassName(在IE5,6,7,8中不能用)。如果元素有id的话当然用id比较好,可以准确的定位。但是没有id这个属性的话,那只能用其他的了。我用了getElementsByTagName,这个方法会返回所有的名字是参数(本例是input)的元素的集合。但是这个集合不能用[]来访问,它会说没有这个错误或者方法,需要用each来调用。参看each方法官方文档:Iterates over each item of OLE collection which has IEnumVARIANT interface,说明迭代元素是有调用属性的接口的。另外,有些编辑器用中文会出现错误,又是那些编码的问题,如第十一行,那么用另一个属性就好了。
第十三行:退出。
ruby中的win32ole使用的更多相关文章
- ruby中 Win32ole的各应用操作方法(word excel Outlook IE)
Win32ole为标准Ruby发行版的一部分.Win32ole是访问Windows自动化的接口,可以让Ruby和Windows应用进行交互.具体说来Win32ole可以操作Word,Excel,IE, ...
- 谈谈Ruby中的类变量
Ruby中的类变量,很多文章都是不太建议使用的,主要原因在于他的一些特性容易导致犯一些错误,尤其在广泛使用元编程的时候. 初步接触类变量可能觉得他跟C++的类静态成员和Java中的静态变量没什么区别, ...
- [翻译]理解Ruby中的blocks,Procs和lambda
原文出处:Understanding Ruby Blocks, Procs and Lambdas blocks,Procs和lambda(在编程领域被称为闭包)是Ruby中很强大的特性,也是最容易引 ...
- 理解Ruby中的作用域
作用域对于Ruby以及其它编程语言都是一个需要理解的至关重要的基础知识.在我刚开始学习ruby的时候遇到很多诸如变量未定义.变量没有正确赋值之类的问题,归根结底是因为自己对于ruby作用域的了解不够, ...
- [No000010]Ruby 中一些百分号(%)的用法小结
#Ruby 中一些百分号(%)的用法小结 #这篇文章主要介绍了Ruby 中一些百分号(%)的用法小结,需要的朋友可以参考下 what_frank_said = "Hello!"#% ...
- Ruby中 使用Builder Xml Markup 操作XML
=begin Ruby中 使用Xml Markup 轻松的对XML文档操作, 项目地址:http://builder.rubyforge.org/ 使用之前我们需要安装Builder xml mark ...
- Ruby中Block, Proc, 和Lambda
Block Blocks就是存放一些可以被执行的代码的块,通常用do...end 或者 {}表示 例如: [1, 2, 3].each do |num| puts num end [1, 2, 3]. ...
- ruby中symbol
Symbol 是什么 Ruby 是一个强大的面向对象脚本语言(本文所用 Ruby 版本为1.8.6),在 Ruby 中 Symbol 表示“名字”,比如字符串的名字,标识符的名字. 创建一个 Symb ...
- [Ruby学习总结]Ruby中的类
1.类名的定义以大写字母开头,单词首字母大写,不用"_"分隔 2.实例化对象的时候调用new方法,实际上调用的是类里边的initialize方法,是ruby类的初始化方法,功能等同 ...
随机推荐
- day15<集合框架>
集合框架(对象数组的概述和使用) 集合框架(集合的由来及集合继承体系图) 集合框架(Collection集合的基本功能测试) 集合框架(集合的遍历之集合转数组遍历) 集合框架(Collection集合 ...
- Unity版本与虚拟现实头盔Deepoon大朋版本测试
一.看这里 Unity官方与OC runtime版本兼容性说明: https://developer.oculus.com/documentation/game-engines/latest/conc ...
- [原创]用Oreans UnVirtualizer还原VM代码
标题:[原创]用Oreans UnVirtualizer还原VM代码实验 作者:sungy 时间:2014-09-18 对VM一直很头痛,在逆向实践一般尽量想办法避开它,当黑盒来处理.有时候不面对她又 ...
- 【PHP】通过header发送自定义数据
发送header: 我们定义了三个参数,token.language.region,放入header发送过去 <?php $url = 'http://www.example.com'; $he ...
- JS-JavaScript类库整理 [更新中...]
老大.jQuery插件库 ——收集最全最新最好的jQuery插件 http://www.jq22.com/ 一.Moment.js ——JavaScript 日期处理类库 http://momentj ...
- Android技巧分享——Android开发超好用工具吐血推荐(转)
内容中包含 base64string 图片造成字符过多,拒绝显示
- linux如何设置用户权限
linux与用户权限设置: 1.添加用户 首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户 #passwd tommy //修改密码 ...
- codeforce 148D. Bag of mice[概率dp]
D. Bag of mice time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...
- URLSearchParams 接口定义处理 URL 参数串
基本使用方法如下 /* * URLSearchParams属性 * @语法:new URLSearchParams(parameter); */ (function(){ var str = &quo ...
- AStar A* A星 算法TypeScript版本
一 演示效果 二 参考教程 <ActionScript3.0 高级动画教程> + 源码 http://download.csdn.net/download/zhengchengpeng/ ...