【发布时间】:2016-12-30 14:49:33
【问题描述】:
我正在尝试仅使用键盘浏览网页。通过使用我的 Tab 键,我可以在多个输入框中输入数据,然后按几个提交按钮。
但是,我在尝试将焦点设置到页面上的图像元素时遇到了问题。由于某种原因,它不允许我用 tab 键选择它。我可以用鼠标单击它,然后会出现一个弹出窗口,但这确实会降低效率。
我曾考虑在 VBA 中创建一个脚本来执行此操作,但现在我更喜欢快速修复,而无需花费数小时开发宏。
注意:我很快尝试将引用分配给<img> 元素并在VBA 中使用Click 和Focus 方法,但这不起作用。我没有收到错误,代码运行正常,但网页上没有任何反应。这使我认为这将是一个比看起来更大的项目,因此我不愿意走这条路。
我做了一些研究,似乎<img> 元素不支持tabindex。这是否意味着我试图用键盘完成的事情是不可能的?代码是我唯一的选择吗?
如果有人知道任何对 VBA 有帮助的事情,我会考虑你的建议。
很遗憾,该网页受密码保护,并且是公司帐户,因此我无法发布。
在我的Chrome 浏览器中右键单击检查元素后,我看到的是:
<img alt="View Quantities At Other Locations" src="/WebOrder/Images/CheckQtys.gif"
title="View Quantities At Other Locations" class="popup"popupdirection="upperleft"
popupwidth="380" popupcontent="#ProductQuantitiesForAccessibleBranches"
onbeforepopupcreate="onBeforePopupCreate_GetProductQuantitiesForAccessibleBranches(this)"
popupajaxformid="GetProductQuantitiesForAccessibleBranches"
onbeforepopupajaxpost="onBeforePopupAjaxPost_GetProductQuantitiesForAccessibleBranches(this)"
oncompletepopupajaxpost="onCompletePopupAjaxPost_GetProductQuantitiesForAccessibleBranches(this)"
productguid="00000000-0000-0000-0000-000000058927" displayitem="732899500"
brandguid="00000000-0000-0000-0000-000000000000" brandname="" brandsku="">
有没有人知道如何将焦点设置在这个元素上(使用键盘或 VBA)?
【问题讨论】:
-
试试
ie.document.getElementsByTagName("img")(0).focus,其中0是网站上Img标签的索引。 -
嗯,很有趣。在发布这个问题之前,我尝试了
.getElementsByClassName。现在我也尝试了你的方法,但它也不起作用。感谢您的尝试。 -
@RyanWildry 你认为我需要在点击之前触发一些 javascript 事件吗?问题是我的本地窗口中的所有属性都是
Null,所以我什至不知道该尝试哪个... -
你能发布网站的网址吗?请记住,您可能需要从 0 更改索引,因为它可能不是集合中的第一项。
-
不幸的是我不能。商品编号没有问题。我对所有项目编号运行了一个 for 循环,所以我 100% 确定。
标签: html vba excel web-scraping browser-automation