ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2058|回复: 4

VBA 在网页中单击弹出窗口后如何选中按钮并确定返回

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-10-20 19:14 | 显示全部楼层 |阅读模式
本帖最后由 NewZealand 于 2016-10-21 11:55 编辑

能否实现单击“单击添加”出现弹出单选项,自动选中id值为“gcddztitle43908”的选项,然后按确定返回?

不知道用什么代码确定子窗口,要是能定位弹出的单选项,通过id就能自动选择。

求高手解答!




附动态操作过程:

VBA 在网页中单击弹出窗口后如何选中按钮并确定返回

VBA 在网页中单击弹出窗口后如何选中按钮并确定返回



在点击添加前网页中的源码:

<div id="selectGcddzWindow" class="selectWindow" style="display:none;">
        <div id="Gcddz_table_Window" onmousedown="beginDrag(this.parentNode,event);">
               
        </div>
</div>

问题:VBA如何捕捉到单击后下面的这段代码?





点击添加后弹出选项,此时网页中的源码:


<div style="left: 0px; top: 73px; width: 1395px; max-height: 464px;" id="selectGcddzWindow" class="selectWindow">
        <div id="Gcddz_table_Window"><table class="new_table_content" border="0" cellSpacing="0" cellPadding="0" width="100%" align="center"><tbody><tr><th>请选择相应的内容:</th><tr><td><input name="gcddz" value="43908" type="radio">要厉行勤俭节约,严格遵守廉洁从政有关规定,严格执行住房、车辆配备等有关工作和生活待遇的规定。<input id="gcddztitle43908" value="要厉行勤俭节约,严格遵守廉洁从政有关规定,严格执行住房、车辆配备等有关工作和生活待遇的规定。" type="hidden" itemcount="0"></td></tr><tr><td><input name="gcddz" value="43903" type="radio">要精简文件简报,切实改进文风,没有实质内容、可发可不发的文件、简报一律不发。<input id="gcddztitle43903" value="要精简文件简报,切实改进文风,没有实质内容、可发可不发的文件、简报一律不发。" type="hidden" itemcount="0"></td></tr><tr><td><input name="gcddz" value="43906" type="radio">要改进新闻报道,中央政治局同志出席会议和活动应根据工作需要、新闻价值、社会效果决定是否报道,进一步压缩报道的数量、字数、时长。<input id="gcddztitle43906" value="要改进新闻报道,中央政治局同志出席会议和活动应根据工作需要、新闻价值、社会效果决定是否报道,进一步压缩报道的数量、字数、时长。" type="hidden" itemcount="0"></td></tr><tr><td><input name="gcddz" value="43904" type="radio">要规范出访活动,从外交工作大局需要出发合理安排出访活动,严格控制出访随行人员,严格按照规定乘坐交通工具,一般不安排中资机构、华侨华人、留学生代表等到机场迎送。<input id="gcddztitle43904" value="要规范出访活动,从外交工作大局需要出发合理安排出访活动,严格控制出访随行人员,严格按照规定乘坐交通工具,一般不安排中资机构、华侨华人、留学生代表等到机场迎送。" type="hidden" itemcount="0"></td></tr><tr><td><input name="gcddz" value="43905" type="radio">要改进警卫工作,坚持有利于联系群众的原则,减少交通管制,一般情况下不得封路、不清场闭馆。<input id="gcddztitle43905" value="要改进警卫工作,坚持有利于联系群众的原则,减少交通管制,一般情况下不得封路、不清场闭馆。" type="hidden" itemcount="0"></td></tr><tr><td><input name="gcddz" value="43907" type="radio">要严格文稿发表,除中央统一安排外,个人不公开出版著作、讲话单行本,不发贺信、贺电,不题词、题字。<input id="gcddztitle43907" value="要严格文稿发表,除中央统一安排外,个人不公开出版著作、讲话单行本,不发贺信、贺电,不题词、题字。" type="hidden" itemcount="0"></td></tr><tr><td><input name="gcddz" value="43902" type="radio">要精简会议活动,切实改进会风,严格控制以中央名义召开的各类全国性会议和举行的重大活动,不开泛泛部署工作和提要求的会,未经中央批准一律不出席各类剪彩、奠基活动和庆祝会、纪念会、表彰会、博览会、研讨会及各类论坛;提高会议实效,开短会、讲短话,力戒空话、套话。<input id="gcddztitle43902" value="要精简会议活动,切实改进会风,严格控制以中央名义召开的各类全国性会议和举行的重大活动,不开泛泛部署工作和提要求的会,未经中央批准一律不出席各类剪彩、奠基活动和庆祝会、纪念会、表彰会、博览会、研讨会及各类论坛;提高会议实效,开短会、讲短话,力戒空话、套话。" type="hidden" itemcount="0"></td></tr><tr><td><input name="gcddz" value="43901" type="radio">要改进调查研究,到基层调研要深入了解真实情况,向群众学习、向实践学习,多到困难和矛盾集中、群众意见多的地方去,切忌走过场、搞形式主义;要轻车简从、减少陪同、简化接待,不张贴悬挂标语横幅,不安排群众迎送,不铺设迎宾地毯,不摆放花草,不安排宴请。<input id="gcddztitle43901" value="要改进调查研究,到基层调研要深入了解真实情况,向群众学习、向实践学习,多到困难和矛盾集中、群众意见多的地方去,切忌走过场、搞形式主义;要轻车简从、减少陪同、简化接待,不张贴悬挂标语横幅,不安排群众迎送,不铺设迎宾地毯,不摆放花草,不安排宴请。" type="hidden" itemcount="0"></td></tr><tr><td align="center"><input value="确定" type="button">  <input value="取消" type="button"></td></tr></tbody></table></div>
</div>
傲游截图20161020190539.png


傲游截图20161020191524.png




TA的精华主题

TA的得分主题

 楼主| 发表于 2016-10-20 23:38 | 显示全部楼层
Sub test()

Dim objShell  As Object
Dim objIE     As Object
Dim n         As Integer

Set objShell = CreateObject("Shell.Application")
For n = objShell.Windows.Count To 1 Step -1
    Set objIE = objShell.Windows(n - 1)
    If objIE Is Nothing Then
        Exit For
    End If
    If Right(UCase(objIE.FullName), 12) = "IEXPLORE.EXE" Then
‘       Debug.Print objIE.document.Title '测试,输入URL
        If objIE.document.URL = "XXXXXX" Then '看看是不是你要的页面
            '找到你要操作的页面了,开始处理
            objIE.document.getElementsbyTagName("span")(3).Click '需要点击此处才能弹出选择对话框
            
            '弹出选择的项目后,怎么样能自动选中id值为"gcddztitle10203"的按钮呢?
            objIE.document.getElementsbyID("gcddztitle10203").Click ' 这句代码出错了,怎么确定弹出的对象


        End If
    End If
Next
Set objShell = Nothing

End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-10-20 23:43 | 显示全部楼层
搜索了一些子窗口、父窗口、FindWindowEx、FindWindow等方法,仍解决不了,求高手支招

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-10-22 15:25 | 显示全部楼层
有没有谁能解答下面的问题, 是不是跟源码中因为 type="hidden" 的属性,而无法选中?

Sub test()

Dim objShell  As Object
Dim objShellN  As Object
Dim objIE     As Object
Dim objIENew     As Object
Dim n         As Integer

Set objShell = CreateObject("Shell.Application")
For n = objShell.Windows.Count To 1 Step -1
    Set objIE = objShell.Windows(n - 1)
    If objIE Is Nothing Then
        Exit For
    End If
    If Right(UCase(objIE.FullName), 12) = "IEXPLORE.EXE" Then
        If objIE.document.URL = "xxxx/TYwLxqkzcb_configByUser.do" Then
            objIE.document.getElementsbyTagName("span")(3).Click
            Application.Wait (Now + TimeValue("00:00:01"))
            Set objIENew = objShellN.Windows(n - 1)
            Myselect = objIENew.document.getElementById("gcddztitle10201").outerhtml
            debug.print Myselect ‘在立即窗口能显示出源码,但执行下面的代码仍然无法选中单选项按钮
            objIENew.document.getElementById("gcddztitle10201").Click   此行代码怎么修改呢?
            Set objShellN = Nothing
            Set objIENew = Nothing
        End If
    End If
Next
Set objShell = Nothing

End Sub


<tr><td><input name="gcddz" type="radio" value="10201">中国共产党以马克思列宁主义、毛泽东思想、邓小平理论、“三个代表”重要思想和科学发展观作为自己的行动指南。<input id="gcddztitle10201" type="hidden" value="中国共产党以马克思列宁主义、毛泽东思想、邓小平理论、“三个代表”重要思想和科学发展观作为自己的行动指南。" itemcount="0"></td></tr>
<tr><td><input name="gcddz" type="radio" value="10411">中国共产党维护和发展平等团结互助和谐的社会主义民族关系,积极培养、选拔少数民族干部,帮助少数民族和民族地区发展经济、文化和社会事业,实现各民族共同团结奋斗、共同繁荣发展。全面贯彻党的宗教工作基本方针,团结信教群众为经济社会发展作贡献。<input id="gcddztitle10411" type="hidden" value="中国共产党维护和发展平等团结互助和谐的社会主义民族关系,积极培养、选拔少数民族干部,帮助少数民族和民族地区发展经济、文化和社会事业,实现各民族共同团结奋斗、共同繁荣发展。全面贯彻党的宗教工作基本方针,团结信教群众为经济社会发展作贡献。" itemcount="0"></td></tr>




TA的精华主题

TA的得分主题

 楼主| 发表于 2016-10-22 17:47 | 显示全部楼层
自己思考出来了,加个循环,

            For Each input0 In inputs
                 If input0.Value = 10201 Then input0.Click
            Next
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-20 02:18 , Processed in 0.041277 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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