excel - Excel VBA 更改网站组合框
问题描述
我有一个要与之交互的网页。它有一个名为“结果”的父组合框。当 Result 设置为 Index 2 的选项时,它会弹出一个带有两个选项的子组合框。设置父组合框的索引并触发 onchange 事件非常有效。
但是,我所做的任何事情都没有成功地以我正在寻找的方式操纵子组合框。
这是子组合框的网页代码:
<div style="display:none;" id="SAVE PENDINGDIV" >
<select name="SAVE PENDINGSelect" class="famSelect" style="width:10em" onChange="handleSys(this.options[this.selectedIndex].value)">
<option value="" selected="selected" >Text 1</option>
<option value="Y">Text 2</option>
这是我操作父组合框的代码:
Set objshell = CreateObject("Shell.Application")
IE_Count = objshell.Windows.count
For x = 0 To (IE_Count - 1)
On Error Resume Next ' sometimes more web pages are counted than are open
my_URL = objshell.Windows(x).document.Location
my_title = objshell.Windows(x).document.Title
'find the desired page
If my_title Like "Page Title" Then
Set ie = objshell.Windows(x)
Exit For
End If
Next
ie.document.getelementbyid("Result").selectedIndex = 2
ie.document.getelementbyid("Result").FireEvent ("onchange")
我试过 getelementbyname 和 getelementbyid。以下是我尝试过但没有成功的事情的概要:
ie.document.getelementbyid("SAVE PENDINGDIV").Value = "Text 2"
ie.document.getelementbyid("SAVE PENDINGDIV").Focus
ie.document.getelementbyid("SAVE PENDINGDIV").FireEvent ("onchange")
ie.document.getelementbyid("SAVE PENDINGDIV").Selected = "Selected"
ie.document.getelementbyid("SAVE PENDINGDIV").Click
ie.document.getelementbyid("SAVE PENDINGDIV").selectedIndex = 1
ie.document.getelementbyid("SAVE PENDINGDIV").options.selectedIndex = 1
我只做了一件事:
ie.document.getelementbyid("SAVE PENDINGDIV").innerText = "Text 2"
这摆脱了我不想做的组合框,并将其替换为“文本 2”作为纯文本。
解决方案
推荐阅读
- python - 将 JSON 格式结构化为指定的数据结构
- javascript - 我有一个图片库,我想在单击每个图片时使用模态打开每个图片
- c++ - 为什么 C++20 不允许在 requires-expression 中使用类型别名?
- sql - Cakephp 4.x 自定义查询
- javascript - 如何将变量设置为特定的语音通道 discord.js?
- html - 我的导航栏没有与我的英雄部分重叠
- python - 致命的 Python 错误:_Py_HashRandomization_Init:无法获取随机数来初始化 Python Python 运行时状态:预初始化
- google-cloud-storage - 在一个谷歌项目上生成的谷歌签名 URL 可以将存储桶对象上传到另一个谷歌项目吗?
- python - 根据类别将单个 JSON 拆分为多个 JSON,但未获取所有类别
- angular - Angular:Ngx-Translate 翻译服务不会动态更改语言