【问题标题】:How do you find and click on a specific button on a webpage using javascript?您如何使用 javascript 找到并单击网页上的特定按钮?
【发布时间】:2013-07-24 15:53:30
【问题描述】:

基本上,我正在尝试编写一个命令行客户端脚本 (javascript) 来自动在线购买商品。

问题是在这个特定的网页上,我尝试点击的按钮(添加到购物车)在页面中多次出现(针对不同的产品)。

我知道:

document.getElementById('addToCart').submit();

将点击addToCart,但由于有多个同名按钮,我如何才能找到并点击某个产品的特定按钮?

我们可以假设我们事先知道产品名称,并且每个 addToCart 按钮都有一个唯一的 id(我不知道)。

【问题讨论】:

  • 很简单:你用鼠标点击按钮。
  • 我们可以使用 jQuery 吗?我问的原因是周围的标签层次结构中应该有一些独特的东西,你能用它的按钮发布产品的 html sn-p 吗?
  • 如果有多个 ID 为 addToCart 的按钮,则您的网页已损坏。 ID 在文档中必须是唯一的。
  • 这里的一般答案是“学会屏幕刮”。基本上,您必须找到您知道的产品名称的标记,然后在 DOM 结构中走动,直到找到其关联的按钮。究竟需要做什么很大程度上取决于所述结构。我支持查看 jQuery 及其选择器和遍历方法的建议,然后加载浏览器开发控制台并进行试验。
  • 至少您必须向我们展示一些 HTML 示例,该元素是产品名称和您要单击的按钮的共同父元素。

标签: javascript button


【解决方案1】:

每个人都是正确的,你应该只有一个 ID,但这里更详细地说明了如何做到这一点。

所以你是说你有一些动态生成的 HTML 对吗?你会得到一个产品列表,你可以得到一个如下所示的按钮列表。

<input id="productId_233442" class="addToCart" type="button" value="addToCart"></input><br/>
<input id="productId_25AD22" class="addToCart" type="button" value="addToCart"></input><br/>
<input id="productId_1J3422" class="addToCart" type="button" value="addToCart"></input><br/>

出于样式目的,您可以为它们提供与上述示例相同的 addToCart 类。

至于 java 脚本,你可以有这样的东西。

$(document).ready(function(){
  $(document).click(function(event){
        alert(event.target.id);
    });
});

我建议使用 JQuery,但如果您愿意,您可以在纯 JS 中执行此操作,但我无法想象您为什么会这样做。

请看下面的小提琴。 http://jsfiddle.net/r0k3t/dRam5/

【讨论】:

    【解决方案2】:

    你有点自己回答了,如果你已经知道产品名称,那么你肯定已经知道它的按钮ID吗?

    document.getElementById('button234').click()
    

    【讨论】:

      【解决方案3】:

      页面上的特定 ID 不应超过一个元素。 如果您需要多个元素,请使用class 属性。

      正如SmokeyPHP 所写,你可以使用.click().submit() 来触发点击事件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-20
        • 2016-10-08
        • 2023-02-07
        • 1970-01-01
        • 2021-12-16
        • 2021-06-16
        相关资源
        最近更新 更多