【问题标题】:Chrome Console Javascript "Cannot read property 'click' of undefined"Chrome 控制台 Javascript“无法读取未定义的属性‘点击’”
【发布时间】:2017-09-04 00:25:56
【问题描述】:

我一直在尝试创建一个脚本来收藏 etsy 商店中的所有商品

var buttons = document.getElementsByName('favorite-container');
for(var i = 0; i <= buttons.length; i++)  
buttons[i].click();

但是,当我尝试在 Chrome 的开发者控制台中运行脚本时出现此错误

“未捕获的类型错误:无法读取未定义的属性‘点击’ 在:3:11"

我认为这应该有效吗?除了进入 selenium 等自动化工具之外,我不知道在我登录的网站上运行 Javascript 的替代方法


回应第一条评论

<div class="favorite-container" data-listing-id="547704515">
    <button type="button" class="btn-fave done" data-source="casanova-shop-featured" aria-pressed="true">
        <!--icon font and display:none; elements -->
        <span aria-hidden="true" class="icon"></span>
        <span class="screen-reader-only default">
            Favourite
        </span>
        <span class="screen-reader-only done remove">
            Favourited
        </span>
        <span class="ie-fix">&nbsp;</span>
    </button>
</div>

【问题讨论】:

  • 可能是因为没有名称为favorite-container的元素。
  • 您可以在此处使用 getElementsByName,因为您没有在任何地方使用 name 属性。您正在寻找 getElementsByClassName。
  • 我已经使用getElementsByClassName并成功选择了页面上的元素
  • 但是,它仍然不会让我自动点击它们。会不会有什么东西阻止了点击事件?

标签: javascript google-chrome console etsy


【解决方案1】:

你使用了错误的方法获取元素,试试document.getElementsByClassName

var buttons = document.getElementsByClassName("favorite-container");
for(var i = 0; i < buttons.length; i++)  {
    buttons[i].click();
}

或者你可以像这样使用 JQuery:

$(".favorite-container").each(function(){
    $(this).click();
});

【讨论】:

  • 这列出了所有的元素,但没有点击它们"(31) [div.favorite-container....... 。”
猜你喜欢
  • 2013-02-02
  • 2018-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多