Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Javascript在DOM上查找并单击此元素?_Javascript_Dom - Fatal编程技术网

如何使用Javascript在DOM上查找并单击此元素?

如何使用Javascript在DOM上查找并单击此元素?,javascript,dom,Javascript,Dom,我需要点击这个元素。 id不是恒定的,每次按钮出现时都会以不同的方式重新生成。 按类搜索提供了太多选项。 找到它并单击它的好方法是什么? 要素: <input type="button" class="simpleInputPushButton" value=OK id="ext-gen141"> 为了澄清,我使用selenium来自动化站点,出于某种原因,selenium没有显示这个元素,因此我需要使用JS。在这种情况下,Jquery是可能的 您可以通过其值来获取该元素。我相

我需要点击这个元素。 id不是恒定的,每次按钮出现时都会以不同的方式重新生成。 按类搜索提供了太多选项。 找到它并单击它的好方法是什么? 要素:

<input type="button" class="simpleInputPushButton" value=OK id="ext-gen141">


为了澄清,我使用selenium来自动化站点,出于某种原因,selenium没有显示这个元素,因此我需要使用JS。在这种情况下,Jquery是可能的

您可以通过其
值来获取该元素。我相信元素的
值将是相同的:

var elem=document.querySelector('input[value=OK]');
控制台日志(elem);
//然后分配单击事件
元素addEventListener('click',函数(){
log('clicked elem with id'+this.id));
})

您可以使用
document.querySelector
获取元素。附加的
onclick
仅用于测试

m=document.querySelector('input[value=“OK”]”)。单击()
功能测试(){
警报(“你好”)
}

按ID获取此元素并触发其上的单击事件

document.getElementById('ext-gen141').click();

可以使用选择器组合来唯一标识元素:

  • 基于父选择器:

    div.parentClassName输入[type=“button”]。SimpleInputButton

  • 基于部分属性值匹配:

    • 开始

      input[type=“button”][id^=“ext gen”].simpleInputButton

    • EndsWith

      input[type=“button”][id$=”-141”]。SimpleInputButton

    • 包含

      input[type=“button”][id~=“gen”]。SimpleInputButton


找到具有固定id的父组件,然后使用类选择器?您可以使用复合选择器来唯一标识按钮。尝试
parentSelector输入[type=“button”]。className
input[type=“button”][attributeName~=“attrValue”]。className
或类似的东西。id不是常量,正在重新生成。OP已明确表示ID将不会工作,因此我们可以尝试在其上检测某个父元素和兄弟元素,这样不会使答案无效吗?当我在控制台上运行此命令时,它会给出未定义的var elem=document.querySelector('input[value=OK]'))您当时在DOM中有值为
OK
的输入元素吗?第一行:让m=document.querySelector('input[value=OK]')返回未定义的元素我不知道如何在querySelector@DotanRaz如果您可以共享更多的HTML,我们可以帮助您形成一个选择器。另外,为了回复您的评论,选择器是一个字符串,在您的情况下,它是唯一的。所以你可以直接使用它。使用它不是一项挑战,创建选择器是一项挑战。@DotanRaz供您参考: