html - VBA:当ID和Classname随机更改时,访问加载了angularjs的div内的元素
问题描述
我是 VBA 的初学者,我制作了一个应用程序,将来自 xls 页面的数据填充到使用 angularjs 的网站。该网站包含一个要填写的表格,因此它的 ID 和类名会随着每次刷新而随机更改四个最新的数字。(例如:下面的代码源:ID的02XC将更改为不同的东西,但前缀将保持不变)。我该如何操作这张桌子?
代码源网站
<div tabindex="-1" class="ui-grid-cell ng-scope ui-grid-coluiGrid-02XC cell editable" id="1554799061475-1-uiGrid-02XC-cell" role="gridcell" aria-selected="false" ng-class="{ 'ui-grid-row-header-cell': col.isRowHeader }" ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.uid" ui-grid-cell="" ui-grid-one-bind-id-grid="rowRenderIndex + '-' + col.uid + '-cell'">[Here is the web table that i want to upload values][1]</div>
我的代码
Set objHtml = New HTMLDocument
Set objHtml = internetExplorer.document
Set modric = objHtml.getElementsByClassName("ui-grid-cell ng-scope ui-grid-coluiGrid-02XC cell editable")
If modric.Length <> 0 Then
For q = 0 To modric.Length - 1
modric(q).Click
modric(q).innerText = Workbooks("remplir").Worksheets("sheet1").Range("F1").Offset(n + 1, 0).Value
Next q
End If
正如我所说,在下一次刷新中, 02XC 将更改为另外四个随机数。我想获取每次刷新的 ID 或类名来操作表。或其他可以帮助我管理桌子的方法。对不起,我的英语太差了。希望你能理解我:)
解决方案
^
您可以使用以 ( ) 运算符开头的属性 = 值选择器
[id^='1554799061475-1-uiGrid-']
我不确定您是否需要单个或多个匹配项
单场比赛
Dim ele As Object
Set ele = objHtml.querySelector("[id^='1554799061475-1-uiGrid-']")
这假设 id 以开头1554799061475-1-uiGrid-
并且只有结束位更改。
querySelectorAll
如果可能有多个匹配项,您可以使用它返回一个 nodeList。
推荐阅读
- reactjs - 带有样式的材质 UI
- reactjs - 谷歌 api 已经出现在 react 应用程序中
- python - 安装 gtts(导入 gTTS)谷歌文本到语音库时出错
- android-studio - Flutter Doctor,Android 许可证状态未知
- python - Python while 循环不止一次询问输入
- python - pandas 数据框更新基于 2 个数据框中的日期值
- node.js - NodeJS 读取部分流
- c++ - 在 C++ 中,你可以根据已经定义的其他变量来定义一个变量吗?
- html - 防止 kotlinx.html DSL 中的 HTML 编码
- javascript - 从按钮动态获取模式中的数据属性