如何在具有Javascript的DOM上查找并单击此元素?

时间:2018-09-04 11:05:29

标签: javascript dom

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

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

为了澄清,我正在使用selenium来自动化站点,出于某些原因,selenium会将此元素显示为未显示,因此我需要使用JS。在这种情况下,可以使用jQuery机器人。

4 个答案:

答案 0 :(得分:0)

您可以通过其value获得该元素。我相信元素的value将是相同的:

var elem = document.querySelector('input[value=OK]');
console.log(elem);
//then assign click event
elem.addEventListener('click', function() {
  console.log('clicked elem with id ' + this.id);
})
<input type="button" class="simpleInputPushButton" value=OK id="ext-gen141">

答案 1 :(得分:0)

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

let m = document.querySelector('input[value="OK"]').click()

function test() {
  alert('Hello')
}
<input type="button" class="simpleInputPushButton" onclick='test()' value='OK' id="ext-gen141">

答案 2 :(得分:-1)

通过ID获取此元素并触发其点击事件

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

答案 3 :(得分:-1)

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

  • 基于父级选择器:

    div.parentClassName input[type="button"].simpleInputPushButton

  • 基于部分属性值匹配:

    • StartsWith

      input[type="button"][id^="ext-gen"].simpleInputPushButton

    • EndsWith

      input[type="button"][id$="-141"].simpleInputPushButton

    • 包含

      input[type="button"][id~="gen"].simpleInputPushButton