首页 > 解决方案 > 根据 VBA 中的标题名称导航到网站的选项卡

问题描述

我正在尝试从 VBA 中的当前选项卡导航到下面 html 代码中显示的另一个选项卡。

<div title="0274 AP INVOICES SAP" data-bind="text: Name, attr: { title: Name }">0274 AP INVOICES SAP</div>

我尝试了以下方法:

ie.document.querySelector("[title*=AP INVOICES SAP].menu-row active-route").Click

但这给了我“对象'JScriptTypeInfo'的方法'querySelector'失败”错误,我还尝试了以下方法:

ie.document.querySelector("div[data-bind*='0274 AP INVOICES SAP']").Click

但这给了我“需要对象”错误。

我应该怎么做才能正确导航到此选项卡?如果您需要更多信息,请告诉我

标签: javascripthtmlvbaweb-scraping

解决方案


两行中的每一行都有一半的答案(语法方面)。

你需要

ie.document.querySelector("[title='0274 AP INVOICES SAP']").click

假设之前已经发生了适当的页面加载等待,并且此 title = value 组合是唯一的和/或您想要第一个;它不是动态的,并且它是点击事件的正确目标。

由于值字符串中的空格,您需要在其周围使用单引号。此外,在属性选择器之后,您不应该使用不属于目标元素的类选择器。

如果您继续收到 JScriptTypeInfo 错误,我之前在使用的页面上看到过knockoutjs,您需要求助于 MS ScriptControl 和更多代码(在 32 位系统上) - 我不推荐,或者切换到使用一个 getElement(s) by 不应该发生此问题的方法。您最终会得到一个类似 VBA 调用 JSCriptTypeInfo 的对象的数组,如果您检查它,您很可能会看到一个字符串,它表示一个对象(节点)数组,我怀疑这些对象(节点)来自默认成员调用。


推荐阅读