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