自动打开www.baidu.com,并搜索关键字“abcd”

 #定义函数:等待页面打开
function WaitForLoad($ie)
{
sleep 2
do {Sleep -Mi 200}
while ($ie.busy)
} $url="www.baidu.com"
$ie = new-object -com "InternetExplorer.Application"
$ie.navigate($url)
$ie.visible=$true
WaitForLoad $ie
#文字输入栏的ID为“kw”,搜索关键字为“abcd”
$ie.Document.getElementById("kw").Value="abcd"
#搜索按钮的ID为“su”,然后调用click()方法点击该按钮
$ie.Document.getElementById("su").click()

参考:http://msdn.microsoft.com/zh-cn/magazine/cc337896.aspx

查找页面元素ID方法:

在调用 getElementById() 方法的时候,如果出现如下错误提示:“找不到“getElementById”的重载,参数计数为:“1”。”,可尝试如下解决方法:

1)getElementByID对PS和IE版本有要求:如下:
  PS2.0 With IE8
  PS3.0 With IE9
2)兼容性视图设置
3)关闭保护模式

注:PS4.0 With IE10下未解决该报错

#################################

$ie.Document.getElementByID("table_set_main").getElementsByTagName("input")|?{$_.value -eq "restart"}|%{$_.click()}

#重启路由:
http://192.168.5.243/sys_cfg_valid.xgi?exe_str("submit REBOOT")

2015.3.26补充:

有的页面中的登录窗口可能会在iframe中,这样的话,直接通过$ie.Document.getElementByID("username")的办法是取不到 username 的输入窗口的,需要先获取到相应的iframe,然后再getElementByID("username"),但是有的iframe不但没有id,也没有name,所以就只能先通过 $login = $ie.Document.getElementsByTagName("iframe") | ? {$_.uniqueNumber -eq 3} 这样的方法获取到相应的iframe了,iframe的uniqueNumber是自己先获取到所有的iframe后,自己找到相应的iframe后找到的,也可以用 sourceindex值。

可以使用下面几种方法去.getElementById("username"),哪个可用就用哪个。

$login.Dcument.getElementById("username")
$login.contentWindow.getElementById("username")
$login.contentDocument.getElementById("username")

但如果iframe涉及到了跨域,那使用上面的方法还是无法获取到相应的元素,目前不知如何解决。

如下图中的 iframe src= https://mailsso.mxhichina.com.....

但该URL为mail.zanchina.com,就涉及到了跨域。

IE自动化的更多相关文章

  1. 构建一个基本的前端自动化开发环境 —— 基于 Gulp 的前端集成解决方案(四)

    通过前面几节的准备工作,对于 npm / node / gulp 应该已经有了基本的认识,本节主要介绍如何构建一个基本的前端自动化开发环境. 下面将逐步构建一个可以自动编译 sass 文件.压缩 ja ...

  2. 细说前端自动化打包工具--webpack

    背景 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过链接组织在一起.用过Dreamweaver的都知道,做网页就像用word编辑文档 ...

  3. python自动化测试(2)-自动化基本技术原理

    python自动化测试(2) 自动化基本技术原理 1   概述 在之前的文章里面提到过:做自动化的首要本领就是要会 透过现象看本质 ,落实到实际的IT工作中就是 透过界面看数据. 掌握上面的这样的本领 ...

  4. Appium移动自动化框架

    引言:Appium 是一个移动端自动化测试开源工具,可以针对不同的平台用一套API来编写测试用例.本文对Appium自动化测试框架的功能进行了概括. 本文选自<软件自动化测试开发>. Ap ...

  5. 前端自动化构建工具gulp记录

    一.安装 1)安装nodejs 通过nodejs的npm安装gulp,插件也可以通过npm安装.windows系统是个.msi工具,只要一直下一步即可,软件会自动在写入环境变量中,这样就能在cmd命令 ...

  6. CYQ.Data 从入门到放弃ORM系列:开篇:自动化框架编程思维

    前言: 随着CYQ.Data 开始回归免费使用之后,发现用户的情绪越来越激动,为了保持这持续的激动性,让我有了开源的念头. 同时,由于框架经过这5-6年来的不断演进,以前发的早期教程已经太落后了,包括 ...

  7. CYQ.Data V5 分布式自动化缓存设计介绍

    前方: 其实完成这个功能之前,我就在思考:是先把想法写了来,和大伙讨论讨论后再实现,还是实现后再写文论述自己的思维. 忽然脑后传来一个声音说:你发文后会进入发呆阶段. 所以还是静下心,让我轻轻地把代码 ...

  8. 在CentOS上构建.net自动化编译环境

             我们知道在Windows上我们很容易构建于MSBuild的自动化编译环境,那么在CentOS也是可以的,主要是需要Mono. 在这儿我们选择Jenkins+Gitlab+Mono在C ...

  9. 感悟 GNU C 以及将 Vim 打造成 C/C++ 的半自动化 IDE

    C 语言在 Linux 系统中的重要性自然是无与伦比.不可替代,所以我写 Linux 江湖系列不可能不提 C 语言.C 语言是我的启蒙语言,感谢 C 语言带领我进入了程序世界.虽然现在不靠它吃饭,但是 ...

  10. 应用Grunt自动化地优化你的项目前端

    在不久前我曾写了一篇 应用r.js来优化你的前端 的文章,为大家介绍了r.js这个实用工具,它可以很好地压缩.合并前端文件并打包整个项目.但是如果将r.js放到项目中,我们不得不顾及到一个问题——项目 ...

随机推荐

  1. PHP最佳实践(译)

    原文: PHP Best Practices-A short, practical guide for common and confusing PHP tasks 译者:youngsterxyf 最 ...

  2. SQL Server 2005的XML数据修改语言(XML DML)

    转:http://www.microsoft.com/china/msdn/library/data/sqlserver/XMLDML.mspx?mfr=true 作为对XQuery语言的扩展,XML ...

  3. HDU 5375 Gray code

    题意:给出一个二进制数,其中有些位的数字不确定,对于所有对应的格雷码,与一个序列a对应,第i位数字为1时得分a[i],求最大的得分. 解法:一个二进制数x对应的格雷码为x ^ (x >> ...

  4. Android常用控件之FragmentTabHost的使用

    最近在学TabHost时发现TabActivity在API level 13以后不用了,所以就去寻找它的替换类,找到FragmentActivity,可以把每个Fragment作为子tab添加到Fra ...

  5. IOS block 记录

    1.需要使用 @property(....,copy) 而不是其他的 2.self.request=[ASIHTTPRequest requestWithURL:[NSURL URLWithStrin ...

  6. 导入CSV文件之后出现换行符问题

    在用sqlldr导入数据之后,出现数据无法匹配的情况 在用plsql点击的时候,发现出现换行符的情况,从而使用下面的方法进行匹配 select q.comments from q where repl ...

  7. support vector regression与 kernel ridge regression

    前一篇,我们将SVM与logistic regression联系起来,这一次我们将SVM与ridge regression(之前的linear regression)联系起来. (一)kernel r ...

  8. Ubuntu 软件包管理详解

    原文转载自:http://www.cppblog.com/jb8164/archive/2009/01/09/71583.html Ubuntu 方便宜用,最值得让人称道的便是其安装软件的方式, 一条 ...

  9. 初识MFC,WinForm,WPF,Q&#39;t

    MFC和QT是C++中常见的GUI框架,而WinForm和WPF是C#中常用的框架,不过我们一般很少叫WinForm框架,可能直接叫图形控件类库更多点.反正只是个称呼罢了,爱咋叫就咋叫.另外WinFo ...

  10. Java8新特性 1——利用流和Lambda表达式操作集合

    Java8中可以用简洁的代码来操作集合,比如List,Map,他们的实现ArrayList.以此来实现Java8的充分利用CPU的目标. 流和Lambda表达式都是Java8中的新特性.流可以实现对集 ...