首页 > 解决方案 > 按钮单击在 chrome 中什么也不做

问题描述

我问了这个问题,我确实从 Kelvin Schoofs 那里得到了一条有用的信息,即 querySelect 是一种更好的选择方法,所以我实现了它。

var bc = document.querySelectorAll('button.link.event-detail__event-information__event-name-status__grouped-match');
for (var b of bc){
        if(b.ariaExpanded=="false"){
            b.click();
        }
}

然而,选择不是我的问题,没有人回答我继续尝试提出的问题。所以让我在图片中尝试一下。

图1显示此页面时,一堆 V 形符号指向上方,表示可以使用更多信息扩展这些行,并注意行之间的边界。图2显示了我要启动的 53 个点击事件中的第一个的启动。图3显示脚本的结果。请注意,所有 V 形现在都指向上方,表示行已扩展,行之间的边界线已消除,但仅此而已。图4显示了当我实际单击时应该出现的信息示例。

我尽可能地进入了站点代码。我确认它正在识别正确的元素和按钮并收集正确的数据(运动、日期等)以检索信息,但它从未插入到页面中。一段代码让我想知道这些点击是否没有像我预期的那样创建一个顺序队列,并且执行这么快可能意味着每个点击都取消了前一个。但是当我只对一行执行单击时,行为是相同的(V 形翻转并且边框消失但没有数据)。

当我试图通过站点代码工作时,有一个例程(ft(e) 和 Un(),如果有人真的要查看的话)收集各种物理鼠标数据(客户端/screenX/Y、键状态等)。 )。所以我会尝试最后一次问我一直在问的问题。有什么东西可以区分脚本点击和物理点击吗?如果是这样,是否有解决方法?

我已经失去了大部分双手的使用能力,能够自动与网页交互对我很有帮助。这对于 VB6/IE 来说总是很容易。但是,当然,这不再适用于大量 HTML5 网站。所以我正在尝试学习 JavaScript,但如果这种自动化不再可能,我不想浪费我的时间。

我真的很感激帮助。

标签: javascript

解决方案


对我来说,className你想要的按钮有另一个类,解释.className=="...失败的原因。

您可以使用 CSS 选择器来识别使用某些类的按钮:

document.querySelectorAll('button.link.event-detail__event-information__event-name-status__grouped-match')

这意味着您的代码可以抵抗站点突然添加新类(或使用不同的顺序)。例如,对我来说,它添加了一个link--using-mouse类。


推荐阅读