找回密码  加入

AUTOIT CN

搜索
查看: 276|回复: 4

[IE类操作] IE基础操作选择的问题

[复制链接]
发表于 2018-12-15 17:16:48 | 显示全部楼层 |阅读模式
本帖最后由 32714107 于 2018-12-15 17:27 编辑

如何用autoit自动选择其中的一个邮箱,如@qq.com,假如@qq.com只是文字,不是链接,用的命令是不是也不一样的,谢谢大师们.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入

x
发表于 2018-12-23 23:20:16 | 显示全部楼层
本帖最后由 逍遥逸仙 于 2018-12-24 08:30 编辑

楼主提到的网页地址是https://www.2345.com/,难道就不能直接给出地址吗?图片中的地址栏也没有,我还是根据图片搜索出来的。
通过查找网页源码,与邮箱相关的源码是下面这段:
  1. <input type="hidden" name="domainss" value="163" id="mailDomainss" title="1">
  2. <div class="select" id="J_select">
  3.         <div class="select-ret bt-deaf">@163.com</div>
  4.         <ul class="select-pop" id="J_selectList">
  5.                 <li data-value="163$1">@163.com</li>
  6.                 <li data-value="126$2">@126.com</li>
  7.                 <li data-value="sohu$4">@sohu.com</li>
  8.                 <li data-value="yeah$9">@yeah.net</li>
  9.                 <li data-value="139$10">@139.com</li>
  10.                 <li class="gray">弹出页登录</li>
  11.                 <li><a href="http://mail.qq.com/" data-value="qq" name="2" class="fred">@qq.com</a></li>
  12.                 <li><a href="http://mail.sina.com.cn/" data-value="sinacn" name="2" class="fred">@sina.com</a></li>
  13.                 <li><a href="http://qzone.qq.com/" data-value="qqkj" name="2">QQ空间</a></li>
  14.                 <li><a href="http://www.2345.com/mail.htm" data-value="moreEmail" name="2">更多邮箱?</a></li>
  15.         </ul>
  16. </div>
复制代码
楼主提到的自动选择@qq.com是不存在的,因为点击文字@qq.com后会自动跳转到qq邮箱的登录页面,那你直接做一个跳转就行了,所以我们假定楼主原意是要自动选择@sohu.com
从源代码看,你光把<div class="select-ret bt-deaf">@163.com</div>改成<div class="select-ret bt-deaf">@sohu.com</div>是不行的,还得把<input type="hidden" name="domainss" value="163" id="mailDomainss" title="1">改成<input type="hidden" name="domainss" value="sohu" id="mailDomainss" title="4">,因为不能光改界面,还得同步修改表单。

列出以下方案,仅供参考(代码在Win7旗舰版sp1,IE9环境下通过)
  1. #include<IE.au3>
  2. Global $IE = _IECreate("https://www.2345.com/")
  3. _IELoadWait ($IE);等待ie加载完成
  4. ;---------------------------------------------------------------------------------
  5. ;方案1,直接设置元素
  6. ;---------------------------------------------------------------------------------
  7. $input=_IEGetObjById ( $IE, "mailDomainss");获取到的是DOM元素,DOM元素的所有属性和方法它都能使用
  8. $Input.value="sohu"
  9. $Input.title="4"
  10. $divs = _IETagNameGetCollection ($IE, "div")
  11. For $div In $divs                          ;$div是DOM元素,DOM元素的所有属性和方法它都能使用
  12.         If $div.getAttribute("class")="select-ret bt-deaf" Then
  13.                  $div.innerHTML='@sohu.com'
  14.         EndIf
  15. Next
  16. ;---------------------------------------------------------------------------------
  17. ;方案2,在页面运行JavaScript脚本
  18. ;---------------------------------------------------------------------------------
  19. ;$IE.document.parentWindow.execscript('document.getElementsByClassName("select-ret")[0].innerHTML="@sohu.com"')
  20. ;$IE.document.parentWindow.execscript('document.getElementById("mailDomainss").value="sohu"')
  21. ;$IE.document.parentWindow.execscript('document.getElementById("mailDomainss").title="4"')
  22. ;---------------------------------------------------------------------------------
  23. ;方案3,不可取,设置完后点击不能弹出登录界面
  24. ;---------------------------------------------------------------------------------
  25. ;$html=_IEBodyReadHTML($IE)
  26. ;$newHtml = StringRegExpReplace($html, '<input id="mailDomainss" title="1" name="domainss" value="163" type="hidden">', '<input id="mailDomainss" title="4" name="domainss" value="sohu" type="hidden">')
  27. ;$newHtml = StringRegExpReplace($newHtml, '<div class="select-ret bt-deaf">@163.com</div>', '<div class="select-ret bt-deaf">@sohu.com</div>')
  28. ;_IEBodyWriteHTML ( $IE , $newHtml )
复制代码
方案3不可取,因为看似界面改成这样了

查看源码也不错

但是实际上点击输入框不能弹出以下登录界面

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入

x
 楼主| 发表于 2018-12-29 16:19:48 | 显示全部楼层
谢谢大神的回答
发表于 2018-12-30 21:47:53 来自手机 | 显示全部楼层
32714107 发表于 2018-12-29 16:19
谢谢大神的回答

那麻烦你把这个帖子标记已解决
发表于 3 天前 来自手机 | 显示全部楼层
做个标记,学习学习
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|小黑屋|手机版|AUTOIT CN ( 鲁ICP备15028933号-3 )谷歌 百度

GMT+8, 2019-1-19 17:26 , Processed in 0.100303 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表