我开始使用VBA与网站进行交互,但偶然发现了一个我在这里找不到解决方案的问题。 我试图单击出现在“新窗口”上的文本(这不是一个新窗口,它只是一个正方形,显示在页面顶部,当我单击所需的行时就会消失)。这是该“正方形”中的代码:
<div id="retornoBuscaDados"><table style="margin: 0px; padding: 0px; border:
0px currentColor; border-image: none; width: 500px;"><tbody><tr class="par">
<td style="width: 100px; cursor: pointer;">nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
nnnnnnn </td></tr><tr class="impar"><td nowrap="" colspan="1"> </td>
</tr><tr class="par"><td nowrap="" colspan="1"> </td></tr><tr
class="impar"><td nowrap="" colspan="1"> </td></tr><tr class="par"><td
nowrap="" colspan="1"> </td></tr><tr class="impar"><td nowrap=""
colspan="1"> </td></tr><tr class="par"><td nowrap="" colspan="1">
</td></tr><tr class="impar"><td nowrap="" colspan="1"> </td></tr><tr
class="par"><td nowrap="" colspan="1"> </td></tr></tbody></table></div>
我要单击的确切行中的代码为:
<td style="width: 100px; cursor: pointer;">
但是该行显示的是文本“ nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn”(我替换为向您显示的实际文本)。所有其他行均为空白。 我不知道该怎么办,直到现在,我只使用getelementbyid(“ xx”)。单击其他代码中的单击步骤。
答案 0 :(得分:1)
假设您正在使用Internet Explorer(尽管CSS选择器组合可以应用于从XMLHTTP请求填充的HTML文档)
ie.document.querySelector("#retornoBuscaDados td").Click
还假设不在父框架/ iframe /新窗口中,并且您有足够的时间加载页面,然后再尝试单击
While ie.Busy Or ie.readyState < 4: DoEvents: Wend
ie.document.querySelector("#retornoBuscaDados td").Click
querySelector返回指定模式的第一个匹配项。模式#retornoBuscaDados td
正在寻找ID为retornoBuscaDados
且具有子td
元素的父元素。它将在此实例中检索第一个孩子。您还可以使用#retornoBuscaDados td:first-child