zoukankan      html  css  js  c++  java
  • IE自动化

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

     1 #定义函数:等待页面打开
     2 function WaitForLoad($ie)
     3 {
     4  sleep 2
     5  do {Sleep -Mi 200}
     6  while ($ie.busy)
     7 }
     8 
     9 $url="www.baidu.com"
    10 $ie = new-object -com "InternetExplorer.Application"
    11 $ie.navigate($url)
    12 $ie.visible=$true
    13 WaitForLoad $ie
    14 #文字输入栏的ID为“kw”,搜索关键字为“abcd”
    15 $ie.Document.getElementById("kw").Value="abcd"
    16 #搜索按钮的ID为“su”,然后调用click()方法点击该按钮
    17 $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,就涉及到了跨域。

  • 相关阅读:
    集成学习
    逻辑斯谛回归
    【腾讯】【实习】【笔试】【数据分析师】2018.04.05
    C语言中scanf和printf的用法详解
    寻找一个数组中未出现的最小正整数(数组元素可重复)
    吃鸡问题中的的动态规划
    Coursera 深度学习 吴恩达 deep learning.ai 第三课 结构化机器学习项目 第二周 测试题目 Autonomous driving (case study)
    【转】P问题与NP问题详细解答加举例
    LeetCode 149. Max Points on a Line
    LeetCode 150. Evaluate Reverse Polish Notation
  • 原文地址:https://www.cnblogs.com/dreamer-fish/p/3994888.html
Copyright © 2011-2022 走看看